1.call和ret指令都是转移指令,它们都修改IP的值,或同时修改CS和IP的值。它们经常共同用语实现子程序的设计。
2.ret指令用栈中的数据,修改IP的内容,从而实现近转移。
3.retf指令用栈中的数据,修改CS和IP的内容,从而实现远转移。
4.CPU执行ret指令时,相当于进行:
pop IP
执行retf指令时,相当于进行:
pop IP
pop CS
5.CPU执行call指令时,进行两步操作:
(1)将当前的IP或CS和IP压入栈中;
(2)转移
6.call指令不能实现短转移,call指令实现转移的方法和jmp指令的原理相同。
7.call 标号(将当前的IP压栈后,转到标号处执行指令)
call执行"call标号"时,相当于进行:
push IP
jmp near ptr 标号
8."call far ptr 标号"实现的是段间转移.
CPU执行"call far ptr 标号"时,相当于进行:
push CS
push IP
jmp far ptr 标号
9.指令格式:call 16位 reg
CPU执行"call 16位 reg"时,相当于:
push IP
jmp 16 位 reg
10.转移地址在内存中的call指令有两种格式.
(1)call word ptr 内存单元地址
CPU执行"cakk word ptr 内存单元地址"时,相当于:
push IP
jmp word ptr 内存单元地址
(2)call dword ptr 内存单元地址
CPU执行"calldword ptr 内存单元地址"时,相当于:
push CS
push IP
jmp dword ptr 内存单元地址
时间: 2024-11-07 00:54:35