王爽《汇编语言》第9章 实验8 分析一个奇怪的程序
来源:互联网 发布:ubuntu openjdk 路径 编辑:程序博客网 时间:2024/05/29 09:37
问:以下代码,程序为什么能正常结束?
assume cs:codesgcodesg segment mov ax,4c00h int 21hstart: mov ax,0 s: nop nop mov di,offset s mov si,offset s2 mov ax,cs:[si] mov cs:[di],ax s0: jmp short s s1: mov ax,0 int 21h mov ax,0s2: jmp short s1 nopcodesg endsend start
执行s部分后,s改写后为:
jmp s-8
mov di,offset s
mov si,offset s2
mov ax,cs:[si]
mov cs:[di],ax
所以 jmp short s 再执行s 的时候就跳到cs:0000的位置,也就是
mov ax,4c00h
int 21
所以会正常结束。
知识点是:转移指令是在编译的时候变成相对偏移地址,这里EBF6是从s2里跳到s1的时候是反向跳8个字节的意思。
同一个表示跳转的命令代码EBF6在
s2:
jmp short s1
nop
中是jmp short s1
而在
s:
jmp 0000
mov di,offset s
mov si,offset s2
mov ax,cs:[si]
mov cs:[di],ax
时是jmp 0000
- 王爽《汇编语言》第9章 实验8 分析一个奇怪的程序
- 汇编语言---王爽--实验8-分析一个奇怪的程序
- 王爽《汇编语言》实验8:分析一个奇怪的程序
- 王爽《汇编语言》实验8 分析一个奇怪的程序
- <<汇编语言>>---王爽 (实验 8)分析一个奇怪的程序
- 汇编语言(王爽)》(第九章、实验8分析一个奇怪的程序)学习笔记
- 实验8 分析一个奇怪的程序
- 小结:实验8 分析一个奇怪的程序
- 《汇编语言》王爽——一个奇怪的程序之EBF6
- 王爽汇编语言 一个奇怪的程序
- 关于王爽老师实验实验八 (分析一个奇怪的程序)之个人解析
- 《汇编语言》读书笔记(4)——一个奇怪的程序
- 王爽《汇编语言》第9章 实验9 根据材料编程
- 王爽《汇编语言》第8章 实验7 不使用栈的解法
- 王爽《汇编语言》第6章 包含多个段的程序
- ;分析一个奇怪的程序 jmp short s
- 王爽 汇编语言 实验9
- 王爽《汇编语言》实验9
- Glib交叉编译:g__cancellable_lock undeclared!&HEADER/C_IN undeclared!&undefined reference to "localeconv"
- ehcache缓存的详细配置
- Mediator模式
- 三款工作流引擎比较:WWF、netBPM 和 ccflow
- 在Android上实现Junit单元测试的四部曲
- 王爽《汇编语言》第9章 实验8 分析一个奇怪的程序
- 周鸿祎谈产品:像怀胎一样怀产品,要厚着脸皮听批评
- 有效控制Android应用程序的耗电量
- Android术语列表概览
- 全方位解读Android多媒体框架源码
- Android之高仿记事本、备忘录、便签
- 服务器端口
- struts2地址映射
- 产品的思路——来自腾讯张小龙的分享(全版)