永发信息网

汇编中ret的作用

答案:3  悬赏:0  手机版
解决时间 2021-03-04 22:55
  • 提问者网友:活着好累
  • 2021-03-04 03:05
汇编中ret的作用
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-03-04 03:44
在这里RET指令的内部操作是:栈顶字单元出栈,其值赋给IP寄存器。即实现了一个程序的转移,将栈顶字单元保存的偏移地址作为下一条指令的偏移地址。

看这段代码不难发现,程序从start后面的语句开始,用mov ax,0指令,让(ax)=0,然后push ax,即让栈顶字单元的值为0。所以ret执行后,(IP)=0,但是CS值不变,即CS一直指向code segment这个段(这个功能是通过assume cs:code实现的),程序转移到code segment段的开头的第一条语句,即mov ax,4c00h,然后调用int 21h结束程序。

mov bx,0这一步嘛,可以理解为这段代码的具体功能就是让bx清零。

补充说明一下:返回指令分为两种,近返回和远返回。
近返回的指令就是ret,内部操作为只出栈一个字单元,只改变IP的值。
远返回的指令是retf,内部操作为连续出栈两个字单元,分别改变IP和CS的值。
这段代码用的是近返回,只改变了IP的值。
全部回答
  • 1楼网友:青尢
  • 2021-03-04 05:10
RET指令的内部操作是:栈顶字单元出栈,其值赋给IP寄存器。即实现了一个程序的转移,将栈顶字单元保存的偏移地址作为下一条指令的偏移地址。
满意请采纳,谢谢!!
  • 2楼网友:野味小生
  • 2021-03-04 04:27
{"ret":-2}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯