戏++ 发表于 2013-12-18 09:21:33

检测点9.1

检测点9.1 (1)程序如下。assume cs:codedata segment   dd 12345678hdata endscode segmentstart: mov ax,data         mov ds,ax         mov bx,0         mov ,bx    ;或mov , word ptr 0     ;或mov , offset start          mov ,cs;或mov ,cs          ;或mov , seg code            jmp dword ptr ds:code endsend start补全程序,使用jmp指令执行后,CS:IP指向程序的第一条指令。 第一格可填①mov ,bx      ②mov ,word ptr 0③mov ,offset start等。第二格可填①mov ,cs   ②mov ,cs         ③mov ,seg code等。解析:jmp dword ptr ds:为段间转移,(cs)=(内存单元地址+2),(ip)=(内存单元地址),要CS:IP指向程序的第一条指令,第一条程序地址cs:0,应设置CS:IP指向cs:0 程序中的mov ,bx这条指令,是将ip设置为0mov ,cs,将cs这个段地址放入内存单元执行后,cs应该不变,只调整ip为0,(ip)=ds:=0

为啥,程序中的mov ,bx这条指令,是将ip设置为0????这句怎么理解

364063141 发表于 2013-12-23 10:27:41

支持鱼C,顶一下

sokou001 发表于 2013-12-28 21:02:50

{:5_96:} 不知道啊啊啊啊啊啊啊啊啊啊啊

weiyio1 发表于 2013-12-28 21:55:28

学习。。。。。。。

冉见祥 发表于 2014-8-14 10:49:03

因为你前面有一条语句,mov bx,0.所以mov ,bx后就将即ds:也就是在ds:内存单元放了0,因为
       (cs)=(内存单元地址+2),
       (ip)=(内存单元地址),
所以就是将IP设置为0
页: [1]
查看完整版本: 检测点9.1