+ -
当前位置:首页 → 问答吧 → 关于指令CALL AX

关于指令CALL AX

时间:2010-12-30

来源:互联网

请教一下这条指令的意思是什么
执行后。堆栈有什么变化

作者: wadeok   发布时间: 2010-12-30

CPU会先把 CALL AX 的机器码的下一条指令的EIP压栈,
然后在转到 [AX] ,
所以栈顶除了相应参数外,顶端是CALL执行完 RET 后 EIP 的返回地址,,,,,

作者: renxu350   发布时间: 2010-12-30

如果不正确请大家纠正,,,,,

作者: renxu350   发布时间: 2010-12-30

AX中存放的是偏移地址
 这是段内转移

作者: znxllyuan   发布时间: 2010-12-30

还要加一个段超越前缀,,,,,

作者: renxu350   发布时间: 2010-12-30

引用 1 楼 renxu350 的回复:
CPU会先把 CALL AX 的机器码的下一条指令的EIP压栈,
然后在转到 [AX] ,
所以栈顶除了相应参数外,顶端是CALL执行完 RET 后 EIP 的返回地址,,,,,

说得不错!

作者: zhanglei8893   发布时间: 2010-12-30

引用 1 楼 renxu350 的回复:
CPU会先把 CALL AX 的机器码的下一条指令的EIP压栈,
然后在转到 [AX] ,
所以栈顶除了相应参数外,顶端是CALL执行完 RET 后 EIP 的返回地址,,,,,

个人理解:间接寻址 +函数调用的合体

作者: flowerjack   发布时间: 2010-12-30