请教SP和IP变化的问题
1,mov ss,ax对应机器码如图为:8ED0,两个字节,单步调试后IP按理应该是0005,为什么是0008?
2,还有SP=0010如何得到??
谢谢!!
针对问题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-7 20:53 static/image/common/back.gif
针对问题1,你可以发现mov ss,ax之后sp=10h
答案只有一个mov ss,ax 和mov ax,cs这两个指令之间夹着一个mov ...
原来如此,多谢! 顶上、、、、、、
页:
[1]