- 4
- 0
- 约2.09千字
- 约 8页
- 2017-04-11 发布于贵州
- 举报
汇编语言-第七章汇编语言-第七章
第7章 宏汇编
【课前思考】 1. 宏汇编技术与子程序技术相比有哪些优、缺点?它们的工作方式有何差别? 2. 虚参与实参是否应一一对应? 3. 哑元表中的变元可以取何种值? 4. 操作符及%操作符如何应用? 5. 宏定义体内的程序段有标号怎么办? 6. 宏定义允许嵌套、递归调用吗? 【学习目标】 了解并掌握宏汇编技术。 【学习指南】 学习宏汇编时注意与子程序技术做比较。通过多看举例,掌握哑元表变元取值、宏定义的嵌套、递归调用等难点技术。 【难重点】 宏调用的优点、宏调用和子程序调用工作方式的差别 虚参与实元 哑元表中的变元取值的多样性 操作符 %操作符 LOCAL伪操作解决宏定义体中的符号问题 宏定义的嵌套、递归 【知识点】 7.1 宏汇编
例7.12 宏定义: INT21 MACRO FUNCTN ;调用DOS功能在屏幕上显示一个字符 MOV AH,FUNCTN ;功能号放在AH中 INT 21H ;DOS调用指令 ENDM DISP MACRO CHAR MOV DL,CHAR ;要显示字符的ASCII码放在DL中 INT21 02H ENDM 宏调用: DISP ? 宏展开: 1 MOV DL, ? ;要显示字符? 2 MOV AH,02H ;功能号2表示要显示一个字符 2 INT 21H宏调用的优点: 由于宏指令可以带哑元,调用时可以用实元取代,这就避免了子程序因参数传送带来的麻烦,使宏汇编的使用更加灵活。实元可以是常数、寄存器、存储单元名以及用寻址方式能找到的地址或表达式等。从以后的例子中可看到,实元还可以是指令的操作码或操作码的一部分等,宏汇编的这一特性是子程序所不及的。 但是,宏调用的工作方式和子程序调用的工作方式是完全不同的。 子程序是在程序执行期间由主程序调用的,它只占有它自身大小的一个空间;而宏调用则是在汇编期间展开的,每调用一次就把宏定义体展开一次,因而它占有的存储空间与调用次数有关,调用次数越多则占有的存储空间也就越大。前面已经提到,用宏汇编可以免去执行时间上的额外开销,但如果宏调用次数较多的话,则其空间上的开销也是应该考虑的因素。因此,可以根据具体情况来选择使用方案。一般说来,由于宏汇编可能占用较大的空间,所以代码较长的功能段往往使用子程序而不用宏汇编;而那些较短的且变元较多的功能段,则使用宏汇编就更为合理了。 应该注意的是:在程序中,宏定义必须出现在宏调用之前,也就是说必须先定义后调用。 往往把宏定义放在程序中所有段的代码之前,即在程序一开始先列出程序中所用的所有宏定义,以便在程序中调用。【本章小结】 宏是源程序中一段有独立功能的程序代码。它只需要在源程序中定义一次,就可以多次调用它。调用时只需要用一个宏指令语句。 宏展开时用宏定义体取代源程序中的宏指令名,而且用实元取代宏定义中的哑元。在取代时,实元和哑元一一对应。实元的个数应该和哑元的个数相等,但汇编程序并不要求它们必须相等(在MASM6中,可以用 :REQ指定某个变元必须有)。宏展开后所得到的语句应该是有效的,否则汇编程序将会指示出错。 由于宏指令可以带哑元,调用时可以用实元取代,使宏汇编的使用增加了灵活性。实元可以是常数、寄存器、存储单元名以及用寻址方式能找到的地址或表达式等。还可以是指令的操作码或操作码的一部分。甚至可以为空。 宏调用是在汇编期间展开的,每调用一次就把宏定义体展开一次,因而它占有的存储空间与调用次数有关,调用次数越多则占有的存储空间也就越大。用宏汇编可以免去执行时间上的额外开销,但如果宏调用次数较多的话,则其空间上的开销也是应该考虑的因素。一般说来,那些较短的且变元较多的功能段,使用宏汇编更为合理。 宏定义必须先定义后调用。允许嵌套、递归。 操作符在宏定义体中可以作为哑元的前缀,展开时把前后两个符号合并而形成一个符号,这个符号可以是操作码、操作数或是一个字符串。 %操作符把跟在它之后的表达式的值转换成当前基数下的数,在宏展开期间,用这个数来取代哑元。 MASM6中可以用 := 操作符为宏变元提供缺省的参数值。 LOCAL伪操作可以解决宏展开后出现的标号多重定义问题。 MASM6用.LISTMACROALL、.LISTMACRO和 .N
您可能关注的文档
- 水土保持方案编制体会.doc
- 水和水蒸气的性质.doc
- 水处理与微生物.doc
- 水处理工艺对溶解性有机物的去除.doc
- 水吸收丙酮—空气常压填料-吸收塔设计.doc
- 水处理板块10大概念股价值解析.doc
- 水城县“十三五”规划研究报告.doc
- 水害防治制度汇编.doc
- 水处理过程中化学絮凝的原理和应用.doc
- 水害防治技术管理制.doc
- GB/T 42818.2-2026认知无障碍 第2部分:报告.pdf
- 中国国家标准 GB/T 47116-2026地下采矿机械 工作面移动式采掘机械 采煤机和犁式系统的安全要求.pdf
- 《GB/T 47116-2026地下采矿机械 工作面移动式采掘机械 采煤机和犁式系统的安全要求》.pdf
- 中国国家标准 GB/T 42818.2-2026认知无障碍 第2部分:报告.pdf
- 《GB/T 42818.2-2026认知无障碍 第2部分:报告》.pdf
- 《GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器》.pdf
- 中国国家标准 GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器.pdf
- GB/T 27664.1-2026无损检测仪器 超声检测设备的性能与检验 第1部分:仪器.pdf
- GB/T 45305.5-2026声学 建筑构件隔声的实验室测量 第5部分:测试设施和设备的要求.pdf
- 中国国家标准 GB/T 45305.5-2026声学 建筑构件隔声的实验室测量 第5部分:测试设施和设备的要求.pdf
最近下载
- 人教版三年级数学下册《口算除法》.ppt VIP
- 中华民族共同体概论课件专家版3第三讲 文明初现与中华民族起源(史前时期).pptx VIP
- 西南财经大学专题研究生考试参考书目.pdf VIP
- 中华民族共同体概论课件第十二讲民族危亡与中华民族意识觉醒(1840—1919)2025年版.pptx VIP
- 金属地下矿山安全教育培训课件.ppt VIP
- 第二学期八年级数学备课组工作计划.docx VIP
- 妇科护理宫腔镜进修总结.pptx
- 中华民族共同体概论大讲堂之第十二讲民族危亡与民族意识觉醒(1840—1919).pptx VIP
- 2025年度销售工作总结与2026战略规划.pptx VIP
- 《横县鱼生全链条管理规范 第1部分:养殖》.docx VIP
原创力文档

文档评论(0)