- 1、本文档共78页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 汇编语言高级编程技术 8.1 宏 8.2 汇编高级语法 8.3 模块化程序设计 8.4 C和汇编的混合编程 8.5 程序优化 8.1 宏 8.1.1 宏指令的定义和使用 宏指令的使用有3个步骤: 宏定义 宏调用 宏扩展 宏定义 格式: 宏指令名 MACRO [形式参数表] … ;宏指令体 ENDM 形式参数表给出形参,形参之间用逗号隔开。 宏调用和宏扩展 宏调用的格式 : 宏指令名 [实参数表] 实参应和形参顺序一致 宏扩展 : 用宏指令体的语句序列替换宏指令名 并用实参替换形参 2.LOCAL伪操作 程序中多次调用宏指令,展开时其中的标 号重复,导致编译出错。 解决办法 :将宏定义体中的标号说明为局 部标号 格式:local 标号1[,标号2, 标号3, …] 3.PURGE伪指令 PURGE伪指令取消已定义的宏指令 格式为: PURGE 宏指令名 [, 宏指令名, …] 注意: 宏指令被取消的程序就不能再使用这个宏指令 指令取消之前的宏调用已经被展开,不受影响 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 MOV EAX, minuend SUB EAX, subtrahend MOV difference, EAX SUBX宏指令(续) ;接上页程序 POP EAX ENDM 要计算ECX=EDX–8,就调用SUBX宏: SUBX EDX, 8, ECX 3.Idx宏指令 对给定的数组下标i, j,元素的地址为: 数组首地址 + (i * RowSize + j) * ElementSize RowSize表示为数组每行的大小 ElementSize表示为每个元素的大小 横线部分可以用宏指令表示: Idx MACRO I, J, RowSize IMUL EBX,I, RowSize ADD EBX, J Idx宏指令(续) ;接上页程序 ADD EBX, EBX SHL EBX, 2 ENDM 调用上述Idx宏指令就可求得数组元素的位置 8.1.3 特殊的宏操作符 1.操作符& 宏定义体中将&放在形参前面 宏扩展时把&后面的形参和前面的符号合并成一个符号 通过&把前后两个符号合并成一个变量名: DefData MACRO Name, Value byte&Name BYTE Value ENDM 调用宏: DefData Temp, 0 DefData 1, -5 展开宏,形成以下语句: 1 byteTemp BYTE 0 1 byte1 BYTE -5 用&连接的符号还可以形成一条指令 2.文本原样传递操作符< > 把实参原封不动地传递到定义体中去替换形参 可以保证实参的完整性 用DefData定义一个5字节的数组Array5: DefData Array5, <-2, -1, 0, 1, 2> 3.表达式操作符% 用%可以取得符号常量的值 宏调用时,%操作符后面的表达式立即求值 后作为实参 4.字符原意操作符! 在宏的定义和调用时,“& < > ! %”这些字符有其特殊的用途。 如果要使用原意,就在字符前加!。 !字符后面跟的一个字符被原样传送。 !字符类似于C语言字符串中的转义字符\ 宏
您可能关注的文档
- 极进网络_模块化交换机操作系统xos.ppt
- 计算机操作系统的概貌.doc
- 计算机操作系统发展简史.doc
- 计算机操作系统考核说明.doc
- 基于Linux嵌入式操作系统的研究.pdf
- 基于MSP430F149单片机的实时多任务操作系统.pdf
- 基于QNX操作系统的嵌入式设备.pdf
- 基于tpm的可信多内核操作系统架构.pdf
- 基于ulTRON操作系统的嵌入式GUI设计.pdf
- 计算机操作系统实验指导书.doc
- GB/T 29324-2024架空导线用碳纤维增强复合材料芯.pdf
- 《GB/T 29324-2024架空导线用碳纤维增强复合材料芯》.pdf
- GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集.pdf
- 《GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集》.pdf
- 中国国家标准 GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集.pdf
- 中国国家标准 GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范.pdf
- GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范.pdf
- 《GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范》.pdf
- GB/T 43860.1220-2024触摸和交互显示 第12-20部分:触摸显示测试方法 多点触摸性能.pdf
- 中国国家标准 GB/T 43860.1220-2024触摸和交互显示 第12-20部分:触摸显示测试方法 多点触摸性能.pdf
1亿VIP精品文档
相关文档
最近下载
- 10万吨年电石乙炔法制VAC项目醋酸乙烯合成工段工艺设计.docx
- 幼儿园禁毒教育课-大手牵小手禁毒一起走.pptx
- QC-T 491-1999汽车筒式减振器尺寸系列及技术条件.pdf VIP
- 自动苏生器仪器.pdf VIP
- 新能源汽车财务风险评估与防范以蔚来汽车为例.pdf VIP
- 冶金建设工程设备与材料划分规定.pdf
- 三菱电梯系列调试资料及、说明 加故障代码子整理比较全的.doc
- CMOS模拟集成电路版图设计:基础、方法与验证 PPT课件 第十章 Calibre LVS常见错误解析.ppt
- QB∕T 5610-2021 硬质聚氯乙烯发泡建筑模板.pdf
- 立式设备安装记录填写示例SH3503-2017.pdf VIP
文档评论(0)