欢迎关注博主的公众号:薛定谔的小鱼儿
1.ret和retf指令
ret指令用栈中的数据,修改IP内容,从而实现近转移
retf指令用栈中数据,修改CS和IP的内容,从而实现远转移
CPU执行ret指令相当于:pop IP
CPU执行retf指令相当于:pop IP
pop CS
实例(ret指令执行后,(IP)=0,CS:IP指向代码段的第一条指令)
assume cs:code
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
2.call指令
CPU执行call指令时,进行两步操作:
(1)将当前的IP或CS和IP入栈
(2)转移
call指令不能实现短转移,call指令实现转移的方法和jmp指令原理相同
1)依据位移进行转