- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
宏汇编2
* 第七章 高级汇编语言技术 第一节 宏汇编 子程序有很多优点,但在子程序本身较短或是需要传送的参量较多的情况下使用宏汇编就更加有利。 一、宏定义和宏调用 宏是源程序中一段有独立功能的程序代码。 它只需在源程序中定义一次,就可以多次调用它,调用时,只需要用一个宏指令语句就可以了。 用伪操作符MACRO和ENDM来实现宏定义 格式: macro-name MACRO [形参表] ? ? (宏定义) ENDM 宏指令名: 给出该宏定义的名称(第一个符号必须是字母) 形参表:给出宏定义中所用到的形式参数,每个哑元之间用逗号隔开。 宏定义体:一组有独立功能的程序代码 调用时,只需使用宏指令名来调用该宏定义。 调用:汇编时,汇编程序对每个宏调用作宏展开–––用宏定义体取代源程序中的宏指令名,用实元代替宏定义中的哑元。取代时,实元和哑元是一一对应的。若实元个数哑元个数?多元实元不允考虑, 若实元个数哑元个数? 多余哑元作空 处理 注:? 取代后,所得到的语句应该是有效的,否则汇编程序将会指示出错。 ? 实元可以是常数、寄存器、指令的操作码、或操作码的一部分。 ? 每调用一次就把宏定义体展开一次,因而它占有的存储空间与调用次数有关。 ? 程序段较短的且变元较多的功能段,则使用宏,但代码较长的功能段?使用子程序。 例7.1 用宏指令定义两个字操作数相乘,得到一个16位的第三个操作数,作为结果。 宏定义:MULT MACRO OPR1, OPR2, RESULT push DX push AX mov AX, OPR1 IMUL OPR2 mov RESULT, AX pop AX pop DX ENPM 宏调用: MULT1 CX, VAR, xyz[BX] MULT1 240, BX, SAVE 宏展开: + push DX + push AX + mov AX, CX + IMUL VAR + mov xyz[BX], AX + pop AX + pop DX + push DX + push AX + mov AX, 240 + IMUL BX + mov SAVE, AX + pop AX + pop DX 例7.2 宏定义可以无变元 SAVEREG MACRO PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI ENDM 例7.3 宏定义变元可以是操作码 F00 MACRO P1,P2,P3 MOV AX,P1 P2,P3 ENDM 宏调用:F00 WORD-VAR, INC,AX 宏展开:+ MOV AX, WORD-VAR + INC,AX 例7.4 变元可以是操作码的一部分, 但在宏定义体中必须用作分隔符 宏定义:LEAP MACRO COND, LAB JCOND LAB ENDM 宏调用:LEAP Z, THERE LEAP NZ, HERE ? 宏展开:+ JZ THERE ? + JNZ HERE 注:是一个操作符,它在宏定义体中可以作为哑元的前缀,展开时可以把前、后两个符号合并而形成一个符号,这个符号可以是操作码、操作数或是一个字符串。 例7.5 FO MACRO P1 JMP TAP1 ENDM 宏调用:FO WORD_VAR 宏展开:+ JMP TAWORD_VAR 例7.6 变元是ASCII串的情况 宏定义:MSGGEN MACRO LAB,NUM,XYZ LABNUM DB HELLO MR.XYZ ENDM 调用: MSGGEN MSG, 1, TAYLOR 展开: + MSG1 DB HELLO MR.TALOR 宏指令名可以与指令助记符或伪操作名相同。 此时宏指令的优先级最高,而同名的指令或伪操作就失效了。 伪操作 PURGE可以用来在适当的时候取消宏定义,以便恢复指令的原始含义。 可同时取消多个宏定义–––各宏指令名间用逗号隔开。 例:ADD MACRO OPR1,OPR2,RESULT ? ENDM 宏调用:ADD XX,YY,ZZ PURGE ADD ; 在该语句后的ADD指令,服从机器指令的定义。 LOCAL伪操作的使用: 由于宏定义体内可以使用标号,但如果程序多次调用该宏定义时,展开后会出现标号的多重定义––––这是不允许的。 为此系统提供了LOCAL伪操作符。 格式:LOCAL list of local lalels 其中: 局部标号表内的各标号之间用逗号隔开 注:? LOCAL伪操作只能用在宏定义体内,而且它必须是MACRO伪操作后的第一个语句,在MACRO和LO
您可能关注的文档
- 安诺AN-5824N 使用说明.doc
- 完型填空考点归纳.doc
- 完形填空五点须知、考点归纳.doc
- 完形填空积累.doc
- 完形填空练习与解析.doc
- 定时开关机.doc
- 定语从句的相关知识详解.doc
- 实例分析-记叙文.doc
- 实例十个.doc
- 实务(3.2).ppt
- 2026年投资项目管理师之宏观经济政策考试题库300道附答案【精练】.docx
- 超星尔雅学习通《形势与政策(2025春)》章节测试附完整答案(网校专用).docx
- 超星尔雅学习通《形势与政策(2025春)》章节测试带答案(研优卷).docx
- 超星尔雅学习通《形势与政策(2026春)》章节测试题附参考答案(实用).docx
- 2026年刑法知识考试题库a4版.docx
- 2026年刑法知识考试题库标准卷.docx
- 2026福建泉州市面向华南理工大学选优生选拔引进考试题库新版.docx
- 2026年国家电网招聘之文学哲学类考试题库300道含完整答案(夺冠).docx
- 2026年法律职业资格之法律职业客观题一考试题库300道含答案【巩固】.docx
- 2026年刑法知识考试题库【精练】.docx
最近下载
- ONKYO安桥功放TX-RZ800产品手册.pdf
- 管理信息系统案例集.docx VIP
- 2025广西柳州城市职业学院人才招聘28人备考题库附答案解析.docx VIP
- 三层电梯plc控制程序(唐泽龙做的)设计.doc VIP
- 中国石化零售管理系统站级平台用户操作手册1 5.pdf
- 配电网带电作业技术在配电线路检修中的应用(电力资料).doc VIP
- 样本库管理系统操作指南v1 1.pptx VIP
- 北京-407EV-标准版-BJ5030XXYVRRC-BEV-407EV纯电动汽车产品使用说明书.pdf VIP
- 2025广西柳州城市职业学院人才招聘28人备考题库附答案.docx VIP
- 数值计算方法 习题解答(赵振宇 ).pdf VIP
原创力文档


文档评论(0)