遒羽 发表于 2013-2-7 20:09:58

请教SP和IP变化的问题



1,mov ss,ax对应机器码如图为:8ED0,两个字节,单步调试后IP按理应该是0005,为什么是0008?
2,还有SP=0010如何得到??
谢谢!!

メ㊣逆ご帅☆ 发表于 2013-2-7 20:09:59

针对问题1,你可以发现mov ss,ax之后sp=10h
答案只有一个mov ss,ax 和mov ax,cs这两个指令之间夹着一个mov sp,10h
为什么DEBUG没显示mov sp,10h这条指令?那是因为DEBUG是靠中断之后来显示的,具体请参考王爽老师的数,几页我忘了。。。

所以指令一共是mov ss,ax 2个字节 mov sp,10h 3个字节,一共5个字节,所以
IP+5=8

针对问题2:上面有了O(∩_∩)O~


如果你不信,DEBUG那个程序,然后指令-u cs:3
就可以看到mov ss,ax紧接着是mov sp,10h

也可以用下面代码测试

assume cs:code
code segment

start: mov ss,ax
mov sp,10h
mov ax,cs


code ends
end start



遒羽 发表于 2013-2-8 09:48:00

メ㊣逆ご帅☆ 发表于 2013-2-7 20:53 static/image/common/back.gif
针对问题1,你可以发现mov ss,ax之后sp=10h
答案只有一个mov ss,ax 和mov ax,cs这两个指令之间夹着一个mov ...

原来如此,多谢!

NGtailang 发表于 2013-2-8 13:05:38

顶上、、、、、、
页: [1]
查看完整版本: 请教SP和IP变化的问题