《汇编语言》——王爽 第十章 CALL和RET指令

call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP。它们经常被共同用来实现子程序的设计。

10.1ret和retf

CPU执行ret时,相当于进行:pop IP

CPU执行retf指令时,相当于进行 :

pop IP

pop CS

10.2 call指令

CPU执行call指令时,进行两步操作:

1.将当前的IP或CS和IP压入栈中

2.转移

call指令不能实现短转移,除此之外,call指令实现转移的方法和jmp指令的原理相同。

10.3 依据位移进行转移的call指令

call 标号(将当前的IP压栈后,转到标号处执行指令)

CPU执行"call标号“时,相当于进行:

push IP

jmp near ptr 标号

10.4 转移的目的地址在指令中的call指令

call far ptr 标号实现的时段间转移

CPU执行"call far ptr 标号”时,相当于进行:

push CS

push IP 

jmp far ptr 标号

10.5 转移地址在寄存器中的call指令

指令格式:call 16位 reg

CPU相当于进行:

push IP

jmp (16位 reg)

10.6 转移地址在内存中的call指令

转移地址在内存中的call指令有两种格式。

1.call word ptr 内存单元地址

CPU相当于进行:

push IP

jmp word ptr 内存单元地址

2. call dword ptr 内存单元地址

CPU相当于进行:

push CS

push IP 

jmp dword ptr 内存单元地址

10.7 call和ret的配和使用

10.8 mul指令

乘法指令。(见书)

10.9 模块化程序设计

10.10 参数和结果传递的问题

10.11 批量数据的传递

10.12 寄存器冲突的问题

实验 10 编写子程序

课程设计 1

猜你喜欢

转载自www.cnblogs.com/JasonPeng1/p/12116532.html
今日推荐