检测点10.4?
下面的程序执行后,ax中的数值为多少??
内存地址???机器码????????汇编指令???????执行后情况?
1000:0?????b8?06?00??????mov?ax,6???????ax=6,ip指向1000:3?
1000:3?????ff?d0?????????call?ax????????pop?ip,ip指向1000:6?
1000:5?????40????????????inc?ax?
1000:6?????58????????????mov?bp,sp??????bp=sp=fffeh?
?????????????????????????add?ax,[bp]????ax=[6+ds:(fffeh)]=6+5=0bh??
就是搞不懂为啥ds:fffeh处的值为5?
请教!
------解决方案--------------------
没有设置堆栈吧,ss=ds=psp,sp=0000,这样 call ax 指令就会将返回地址即 call 指令的下面一条指令的地址亦即 0005 压栈到 ss(ds):fffe 处。