当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

《汇编语言程序设计教程》 第八章 汇编语言高级编程技术

资源类别:文库,文档格式:PPT,文档页数:78,文件大小:453.5KB,团购合买
第8章汇编语言高级编程技术 8.1 宏 8.2 汇编高级语法 8.3 模块化程序设计 8.4 C和汇编的混合编程 8.5 程序优化
点击下载完整版文档(PPT)

第8章汇编语言高级编程技术 8.1宏 8.2汇编高级语法 8.3模块化程序设让 8.4C和汇编的混合编程 8.5程序优化

第8章 汇编语言高级编程技术 8.1 宏 8.2 汇编高级语法 8.3 模块化程序设计 8.4 C和汇编的混合编程 8.5 程序优化

8.1宏 81.1宏指令的定义和使用 宏指令的使用有3个步骤: 宏定义 宏调用 宏扩展

8.1 宏 8.1.1 宏指令的定义和使用 宏指令的使用有3个步骤: ◼ 宏定义 ◼ 宏调用 ◼ 宏扩展

宏定义 格式: 宏指令名 MACRO[形式参数表] 宏指令体 ENDM 形式参数表给出形参,形参之间用逗号隔开

宏定义 格式: 宏指令名 MACRO [形式参数表] … ;宏指令体 ENDM ◼ 形式参数表给出形参,形参之间用逗号隔开

宏调用和宏扩展 宏调用的格式: 宏指令名[实参数表] 实参应和形参顺序一致 宏扩展: 用宏指令体的语句序列替换宏指令名 并用实参替换形参

宏调用和宏扩展 宏调用的格式 : 宏指令名 [实参数表] ◼ 实参应和形参顺序一致 宏扩展 : ◼ 用宏指令体的语句序列替换宏指令名 ◼ 并用实参替换形参

2. LOCAL伪操作 程序中多次调用宏指令,展开时其中的标 号重复,导致编译出错 解决办法:将宏定义体中的标号说明为局 部标号 格式: local标号1[,标号2,标号3,…

2.LOCAL伪操作 程序中多次调用宏指令,展开时其中的标 号重复,导致编译出错。 解决办法 :将宏定义体中的标号说明为局 部标号 格式:local 标号1[,标号2, 标号3, …]

3. PURGE伪指令 PURGE伪指令取消已定义的宏指令 格式为: PURGE宏指令名[,宏指令名,] 注意: 宏指令被取消的程序就不能再使用这个宏指令 指令取消之前的宏调用已经被展开,不受影响

3.PURGE伪指令 PURGE伪指令取消已定义的宏指令 格式为: PURGE 宏指令名 [, 宏指令名, …] 注意: ◼ 宏指令被取消的程序就不能再使用这个宏指令 ◼ 指令取消之前的宏调用已经被展开,不受影响

8.1.2宏指令中参数的使用 1.MOVE宏指令 MOV指令不允许源操作数和目标操作数同时为内存操作数, 我们如此定义 dwVarA DWORD dwVarB DWORD 50 MOVE MACRo X. Y PUSH Y POP ENDM 调用 move dwVarA, dwVarB,可将后者内容赋给前者

8.1.2 宏指令中参数的使用 1.MOVE宏指令 MOV指令不允许源操作数和目标操作数同时为内存操作数, 我们如此定义: dwVarA DWORD ? dwVarB DWORD 50 MOVE MACRO X, Y PUSH Y POP X ENDM 调用MOVE dwVarA,dwVarB,可将后者内容赋给前者

2.SUBX宏指令 SUB指令执行后,目标操作数中的被减数被“差” 替换掉。我们可以定义一个新的宏指令,它包括 3个参数:被减数( minuend)、减数 ( subtrahend)、差( difference) SUBX MACRO minuend. subtrahend. difference PUSH EAX EAX. minuend SUB EAX. subtrahend difference. EAX

2.SUBX宏指令 SUB指令执行后,目标操作数中的被减数被“差” 替换掉。我们可以定义一个新的宏指令,它包括 3个参数:被减数(minuend)、减数 (subtrahend)、差(difference)。 SUBX MACRO minuend, subtrahend, difference PUSH EAX MOV EAX, minuend SUB EAX, subtrahend MOV difference, EAX

SUBX宏指令(续) ;接上页程序 POP EAX ENDM 要计算ECX=EDX-8,就调用SUBX宏: SUBX edX. 8. ECX

SUBX宏指令(续) ;接上页程序 POP EAX ENDM 要计算ECX=EDX–8,就调用SUBX宏: SUBX EDX, 8, ECX

3.Idx宏指令 对给定的数组下标i,j,元素的地址为: 数组首地址+(i米 Rowsize+j)* Elementsize RowSize表示为数组每行的大小 Elementsize表示为每个元素的大小 横线部分可以用宏指令表示: Idx MACRO l,, RowSize IMUL EBX.I. RowSize ADD

3.Idx宏指令 对给定的数组下标i, j,元素的地址为: 数组首地址 + (i * RowSize + j) * ElementSize RowSize表示为数组每行的大小 ElementSize表示为每个元素的大小 横线部分可以用宏指令表示: Idx MACRO I, J, RowSize IMUL EBX,I, RowSize ADD EBX, J

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共78页,可试读20页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有