王爽《汇编语言》实验8 分析一个奇怪的程序
2016-12-06 17:22
225 查看
我将画出内存中内容来解释这个实验,易于理解。
进入debug模式,最开始各个寄存器的状态:
在执行到 mov di,offset s之前,内存是这样的:
即从0b25:5执行到0b25:9。
0b25:a-ob25:15这段代码实际上是将s2开始的两个字节复制到s开始的两个字节中,即覆盖了s中的两个nop
执行完这段之后,内存如下
继续执行,IP寄存器指向0b25:16(即S0),执行jmp指令后会跳回到S处。再执行S处的jmp指令,用当前指令后的第一个字节a加上偏移F6,得到00,即会跳转到0b25:0,执行mov ax,4c00h int 21,正常结束程序。
进入debug模式,最开始各个寄存器的状态:
AX=0000 BX=0000 CX=0023 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B15 ES=0B15 SS=0B25 CS=0B25 IP=0005 NV UP EI PL NZ NA PO NC 0B25:0005 B80000 MOV AX,0000
在执行到 mov di,offset s之前,内存是这样的:
即从0b25:5执行到0b25:9。
0b25:a-ob25:15这段代码实际上是将s2开始的两个字节复制到s开始的两个字节中,即覆盖了s中的两个nop
mov di,offset s mov si,offset s2 mov ax,cs:[si] mov cs:[di],ax
执行完这段之后,内存如下
继续执行,IP寄存器指向0b25:16(即S0),执行jmp指令后会跳回到S处。再执行S处的jmp指令,用当前指令后的第一个字节a加上偏移F6,得到00,即会跳转到0b25:0,执行mov ax,4c00h int 21,正常结束程序。
相关文章推荐
- 王爽《汇编语言》第9章 实验8 分析一个奇怪的程序
- 王爽《汇编语言》实验8:分析一个奇怪的程序
- 汇编语言(王爽)》(第九章、实验8分析一个奇怪的程序)学习笔记
- 王爽实验8 分析一个奇怪的程序
- <<汇编语言>>---王爽 (实验 8)分析一个奇怪的程序
- 关于王爽老师实验实验八 (分析一个奇怪的程序)之个人解析
- 汇编语言---王爽--实验8-分析一个奇怪的程序
- 小结:实验8 分析一个奇怪的程序
- 汇编语言:实验8分析一个奇怪的程序
- 汇编实验八:分析一个奇怪的程序
- 《汇编语言》王爽——一个奇怪的程序之EBF6
- 实验8 分析一个奇怪的程序
- 王爽《汇编语言》第八章实验七 题目分析解答
- 王爽《汇编语言》实验12——编写0号中断的处理程序
- 汇编“生活”(一)——王爽《汇编语言》实验9程序代码——改变显示器字体颜色
- Linux内核分析:实验七--Linux内核如何装载和启动一个可执行程序
- 王爽《汇编语言》实验12 编写0号中断的处理程序
- 《汇编语言》读书笔记(4)——一个奇怪的程序
- 王爽《汇编语言》第十二章实验——0号中断处理程序
- 王爽《汇编语言》探究实验五——自己实现一个printf函数