ret 和 retf
本文最后更新于 2020年4月7日 下午
ret
ret指令用栈中的数据,修改ip中的内容,从而实现近转移
过程:
ip=ss*16+sp
sp+=2
相当于 pop ip
retf
修改cs和ip 的内容,实现远转移
过程
- ip=ss*16+sp
- sp+=2
- cs=ss*16+sp
- sp+=2
相当于 pop ip ,pop cs
例1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17assume cs:code,ss:stack
stack segment
db 16 dup (0)
stack ends
code segment
mov ax,4c00h
int 21h
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,0
push ax
mov bx,0
ret
code ends
end start
这条指令相当于把ip变为0,指向第一条指令
ret 和 retf
https://www.xinhecuican.tech/post/29378.html