call指令问题
本帖最后由 绝世公子 于 2013-9-14 19:31 编辑如图,怎么得出ax=6的?麻烦说详细点,脑子不好使、、、
也就是说栈里面存放的是6吧说错勿喷 牡丹花下死做鬼 发表于 2013-9-14 19:58 static/image/common/back.gif
也就是说栈里面存放的是6吧说错勿喷
ss、sp知道了么? 执行完CALL S后 SP=SP-2=0000 - 2 = FFFE
IP = IP + 位移 = 0003 + 0004 = 0007
Call 0007
SS:SP中存放的是06
你可以在debug中d ss:sp查看栈中的数据:
00 00 00 00 00 00 00 00 07 00 B0 14 6F 0E 06 00 我来见识一下 执行call s前,ip指向下一条指令,ip=6,执行call s,ip入栈,最后出栈存入ax call指令执行前,ip指向下一条指令,ip=6,执行call分两步,一入栈当前ip,二跳转到标号。
最后一条语句出栈值存入ax,所以ax=6 明白了,谢谢:-P
页:
[1]