永发信息网

怎么调用CALL 使CALL在堆栈里不平衡

答案:2  悬赏:40  手机版
解决时间 2021-03-04 10:52
  • 提问者网友:一抹荒凉废墟
  • 2021-03-04 05:09
怎么调用CALL 使CALL在堆栈里不平衡
最佳答案
  • 五星知识达人网友:从此江山别
  • 2021-03-04 06:25
中断INT过程:
1.取得中断类型码
2.把标志位压入栈中
3.把CS压入栈中
4.把IP压入栈中
5.更改CS和IP,转到中断程序

CALL:将当前IP或者CS和IP压入栈中,到底是把IP还是IP和CS压入栈中。就要看CALL后到底是一个字还是2个字的,如果是一个字的,就只把IP压入栈中,例如CALL AX;如果是两个字,就先把CS压入有栈中,再把IP压入栈中,例如CALL dword ptr 内存单元地址

希望对你有帮助!
全部回答
  • 1楼网友:第四晚心情
  • 2021-03-04 07:03
call指令段内调用将指令指针ip入栈,段间调用先入栈段基址cs,再入栈ip。call调用ret返回再讲地址弹出,相关变量值改变。而int指令要先将flags(状态标志位)入栈,再将cs入栈,再将ip入栈,然后还要将相关寄存器值入栈,iret返回后,相关寄存器的值不发生变化。不知我有没有将call和int指令内容给你讲明白,不明白再问哈
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯