汇编, RET和RETF
答案:4 悬赏:70 手机版
解决时间 2021-03-12 13:47
- 提问者网友:记得曾经
- 2021-03-11 16:39
汇编, RET和RETF
最佳答案
- 五星知识达人网友:woshuo
- 2021-03-11 17:55
call 指令的返回就是用ret 而不是用retf 因为call指令把call的下一条指令的IP进栈 而ret就是pop ip 这就能够返回原来的IP进而继续执行程序
对于retf ,retf指令是pop ip pop cs ,是把ip和cs同时都修改了 , 所以call指令就是应该用ret 而不是用retf , 如果你不加ret , 就会导致程序一直往下执行,而不会返回去。
再说一下retf指令,举个例子
mov ax,0
push ax
mov ax,0FFFFH
push ax
retf
这个时候返回去了,sp=sp+4,cs:ip=0:0FFFFH,就会在这个地方开始执行程序
对于retf ,retf指令是pop ip pop cs ,是把ip和cs同时都修改了 , 所以call指令就是应该用ret 而不是用retf , 如果你不加ret , 就会导致程序一直往下执行,而不会返回去。
再说一下retf指令,举个例子
mov ax,0
push ax
mov ax,0FFFFH
push ax
retf
这个时候返回去了,sp=sp+4,cs:ip=0:0FFFFH,就会在这个地方开始执行程序
全部回答
- 1楼网友:摆渡翁
- 2021-03-11 21:21
返回不了吧
- 2楼网友:一秋
- 2021-03-11 20:16
只完成压栈操作,没有退栈操作,在你的汇编段直到遇到下一个执行到的ret等的返回指令才算执行完,
- 3楼网友:骨子里都是戏
- 2021-03-11 19:22
如果不用RET,会继续值行下面的语句,如果下面没有语句了。那程序就结束了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯