- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 高级汇编语言技术 1、宏汇编 2、重复汇编 3、条件汇编 如果在一个程序中多次使用同一组指令时,为了避免每次都要重写,该如何解决? 方法1:把这组指令写成一个子程序,每次需要执行时调用这个子程序就可以了。 方法2:当这组指令较短或不适合把它写成一个子程序时,可以把它定义成一个宏,每次需要执行时就去调用这个宏。 宏汇编 为用户提供更加容易、更加灵活、更加向高级语言靠拢的汇编工具。 宏:源程序中一段有独立功能的程序代码。 宏指令:用户自定义的指令。在编程时,将多次使用的功能用一条宏指令来代替。 宏定义 macro_name MACRO [哑元表] ; 形参/虚参 …… (宏定义体) …… ENDM macro_name 宏指令名(宏名),调用时用。[哑元表] 形参表,哑元之间用逗号隔开 宏调用 格式: macro_name [实元表] ; 实参 实元表中的实元与哑元表中的哑元在位置上一一对应; 若实元数大于哑元数,则多余的实元无效; 若实元数小于哑元数,则多余的哑元作“空(NUL)”处理; 对宏指令的调用必须先定义后调用。 注意:宏展开后,即用实参取代形式参数之后,所得到的语句应该是有效的,否则汇编时会出错。 例1:用宏指令定义两个字操作数相乘,得到一个16位的第三个操作数作为结果。宏定义: MULTIPLY MACRO OPR1,OPR2,RESULT PUSH DX PUSH AX MOV AX, OPR1 IMUL OPR2 MOV RESULT, AX POP AX POP DX ENDM 宏调用: MULTIPLY CX,VAR,XYZ[BX] MULTIPLY 240,BX,SAVE 宏展开 源程序被汇编时,汇编程序把宏调用展开,也就是用宏定义体取代源程序中的宏指令名,同时用实元取代哑元,所展开的指令前加上1表示这些宏指令是由宏展开而得到的较早的版本用+符号表示 宏展开: 1 PUSH DX 1 PUSH AX 1 MOV AX, CX 1 IMUL VAR 1 MOV XYZ[BX], AX 1 POP AX 1 POP DX 1 PUSH DX 1 PUSH AX 1 MOV AX, 240 1 IMUL BX 1 MOV SAVE, AX 1 POP AX 1 POP DX 宏调用与子程序调用的区别 子程序:在程序执行期间被调用,只占用自身大小的一段空间。 宏调用:在汇编期间被展开,每调用一次就把宏定义体展开一次。 子程序与宏调用工作方式的差异 1、子程序调用是在程序执行期间进行的,主程序通过CALL指令转入于程序的入口地址去执行子程序,子程序执行完后RET指令返回到主程序的调用处(断点处);而宏调用是通过宏指令名和实在参数(如果有要传递的参数的话)进行调用的,而且是在汇编期间展开宏定义体的。 2、子程序中的这组指令的机器码在存储器中只需要存放一次;而宏调用则不同,每调用一次就把宏定义体展开一次,因而它占有的存储空间与调用次数有关,调用次数越多则占有的存储空间就越大 3、子程序调用时需要用堆栈,调用子程序和返回主程序都要开销必要的时间;而宏调用其宏定义体展开是插入在调用程序中,因此避免了调用时跳到宏和由宏返回所开销的时间。 如何选择用子程序还是用宏调用呢? 一般来说,由于宏汇编可能占用较大的空间,所以代码较长的功能段往往使用子程序而不用宏汇编;而那些较短的且变元较多的功能段,则使用宏汇编比较合理。 宏定义中的参数 1、可以无变元 2、可以是操作码 3、可以是操作码的一部分,但在宏定义体中必须用 来分隔。 4、变元是ASCII串 5、%操作符 宏定义可以无变元 SAVEREG MACRO PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI ENDM 变元可以是操作码 FOO MACRO P1,P2,P3 MOV AX, P1 P2 P3 ENDM 宏调用: FOO WORD_VAR,INC,AX 宏展开: 1 MOV AX,WORD_VAR 1 INC AX 变元是操作码的一部分 变
您可能关注的文档
- 第七章 无穷级数讲述.ppt
- 《6.1质量》汇编.ppt
- 8-1感觉器视器探讨.ppt
- 《易经》与中国文化-第七讲-《易经》与中医学、养生学精讲.ppt
- 《8.2_液体的压强》3汇编.ppt
- 第七章 原子的壳层结构讲述.ppt
- 8-5循环过程卡诺循环探讨.ppt
- 《蛹变成了什么》精讲.ppt
- 第七章_GPS原理及其在测量中的应用讲述.ppt
- 第七章_物料搬运系统讲述.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
最近下载
- 4-1 中化泉州石化 3 万吨年干气脱硫制二甲基亚砜项目设备设计说明书(含塔设备计算说明、换热器设计结果、设备一览表).pdf
- 工程造价_横湖桥商业楼土建工程量清单报价.docx VIP
- 浙江师范大学行知学院 学生手册.pdf
- 2025年辽宁沈阳市文体旅产业发展集团有限公司招聘笔试参考题库附带答案详解.pdf
- 川崎病患儿的护理课件.pptx VIP
- 2024年东莞市东华高级中学自主招生数学试卷附答案解析 .pdf
- 中医馆客服知识培训课件.pptx
- 辽宁沈阳市文体旅产业发展有限公司招聘笔试题库2025.pdf
- 全国公开课大赛一等奖小学一年级下册数学人教版《七巧板》课件.pptx
- 辽宁沈阳市文体旅产业发展集团有限公司招聘笔试题库2025.pdf
文档评论(0)