ret

ret指令用栈中的数据,修改ip中的内容,从而实现近转移

过程:

  1. ip=ss*16+sp

  2. sp+=2

相当于 pop ip

retf

修改cs和ip 的内容,实现远转移
过程

  1. ip=ss*16+sp
  2. sp+=2
  3. cs=ss*16+sp
  4. sp+=2

相当于 pop ip ,pop cs


assume 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,指向第一条指令