ret 和 retf
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
例cs:code,ss:stack
stack
db 16 dup (0)
stack ends
code
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,指向第一条指令
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment