"《汇编语言》(王爽)第10章_call_和_ret_指令" 《汇编语言》(王爽)第10章_call_和_ret_指令是汇编语言课程的重要组成部分,本章节主要讲解call和ret指令的原理和应用。 10.1 ret 和 retf ret 指令用栈中的数据,修改 IP 的内容,从而实现近转移;retf 指令用栈中的数据,修改 CS 和 IP 的内容,从而实现远转移。可以看出,如果我们用汇编语法来解释 ret 和 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 指令时,进行如下的操作:(1)(sp) = (sp) – 2 ((ss)*16+(sp)) = (IP);(2)(IP) = (IP) + 16 位位移。16 位位移 =“ 标号”处的地址- call 指令后的第一个字节的地址。 10.4 转移的目的地址在指令中的 call 指令 前面讲解的 call 指令,其对应的机器指令中并没有转移的目的地址,而是相对于当前 IP 的转移位移。指令“call far ptr 标号”实现的是段间转移。 10.5 转移地址在寄存器中的 call 指令 转移地址在寄存器中的 call 指令可以实现寄存器间的转移。 10.6 转移地址在内存中的 call 指令 转移地址在内存中的 call 指令可以实现内存中的转移。 10.7 call 和 ret 的配合使用 call 和 ret 指令经常被共同用来实现自程序的设计。 10.8 mul 指令 mul 指令用于实现乘法运算。 10.9 模块化程序设计 模块化程序设计是软件设计的重要方法,它可以将大型程序分解成小的模块,从而提高程序的可维护性和可重用性。 10.10 参数和结果传递的问题 参数和结果传递是程序设计中的重要问题,它们可以影响程序的正确性和可读性。 10.11 批量数据的传递 批量数据的传递是程序设计中的重要问题,它可以影响程序的性能和可读性。 10.12 寄存器冲突的问题 寄存器冲突的问题是程序设计中的重要问题,它可以影响程序的正确性和可读性。 《汇编语言》(王爽)第10章_call_和_ret_指令对汇编语言的学习和应用起着非常重要的作用。
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助