小燕双飞GO 发表于 2013-12-25 10:40:57

call指令的一些问题

call指令执行时,当前的IP的值保存在哪里了?书没有明白指出来,是否有必要先定义个栈来保存这个IP呢?实验十中的主程序中没有初始化栈元素,而我们的小鱼老师在子程序中却做了PUSH和POP操作,请大家讲讲这两个问题吧。我通过DEBUG后发现IP被保存在偏移地址为FFFE中。你们说说见解。

如梦幻泡影 发表于 2013-12-25 12:02:59

本帖最后由 如梦幻泡影 于 2013-12-25 12:06 编辑

是在棧中存著的.函數RET後將這個值彈出來給IP,這個操作是隱式實現的,你不必要手動PUSH POP

小燕双飞GO 发表于 2013-12-25 12:58:46

分析要祥细一点,不能说一点留一点。我认为执行CALL指令时,有个默认栈元素存在,栈的段地址SS=CS,偏移地址SP=0,SS:SP指向这个段的末尾地址,也就是FFFFH处。
页: [1]
查看完整版本: call指令的一些问题