绝世公子 发表于 2013-9-14 19:30:44

call指令问题

本帖最后由 绝世公子 于 2013-9-14 19:31 编辑

如图,怎么得出ax=6的?麻烦说详细点,脑子不好使、、、

牡丹花下死做鬼 发表于 2013-9-14 19:58:32

也就是说栈里面存放的是6吧说错勿喷

绝世公子 发表于 2013-9-14 20:59:25

牡丹花下死做鬼 发表于 2013-9-14 19:58 static/image/common/back.gif
也就是说栈里面存放的是6吧说错勿喷

ss、sp知道了么?

福禄娃娃 发表于 2013-9-14 23:33:16

执行完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

网络学习 发表于 2013-9-15 00:19:04

我来见识一下

vitamin 发表于 2013-9-15 06:59:09

执行call s前,ip指向下一条指令,ip=6,执行call s,ip入栈,最后出栈存入ax

vitamin 发表于 2013-9-15 07:25:46

call指令执行前,ip指向下一条指令,ip=6,执行call分两步,一入栈当前ip,二跳转到标号。
最后一条语句出栈值存入ax,所以ax=6

绝世公子 发表于 2013-9-15 12:43:20

明白了,谢谢:-P
页: [1]
查看完整版本: call指令问题