- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8086汇编语言宏语句
5.4 宏指令语句; 宏指令名 MACRO [形式参数]
ENDM
宏调用的格式为
宏指令名 [实际参数]
这就是说,只要在源程序中写上已定义过的宏指令名就算是调用该宏指令了。
具有宏调用的源程序被汇编时,每个宏调用将被MASM进行宏展开。宏展开实际上是用宏定义式设计的宏体去代替相应的宏指令,并用实际参数一一取代形参。;由此可见,使用宏的过程共有三步:首先进行宏定义;然后可以进行宏调用;最后,汇编时由MASM进行宏展开。
[例] 若源程序中多处需要将AL和CL寄存器中的两位压缩型的BCD数相加,并将和送回BL寄存器,则可象下述这样定义宏指令,然后在需要的地方进行调用。
DECADD MACRO
ADD AL,CL
DAA
ENDM
显而易见,这是一个无形式参数的宏定义。;如果对分别存放在任意8位寄存器或存储单元中的两个压缩型的BCD数进行加法运算,则可将上例宏定义改写为
DECADD1 MACRO OPR1,OPR2
MOV AL,OPR1
ADD AL,OPR2
DAA
MOV OPR1,AL
ENDM
这是一个带有两个形式参数的宏定义。宏指令为DECADD1。例如有以下宏调用:; DECADD1 DL, BUFFER
DECADD1 AREA1, AREA2
则汇编时进行宏展开,得到以下指令:
DECADD1 DL, BUFFER
+ MOV AL, DL
+ ADD AL, BUFFER
+ DAA
+ MOV DL, AL
DECADD1 AREA1, AREA2
+ MOV AL, AREA1
+ ADD AL, AREA2
+ DAA
+ MOV AREA1, AL
宏扩展后,原来宏体中的指令前面都加上了符号“+”,以示区别。;宏指令与子程序的区别
在汇编语言程序设计中,宏指令和子程序都给设计者提供了很大方便。他们都是可被程序多次调用的程序段,并且调用前必须由设计者事先根据需要按一定格式进行定义。然而,宏指令和子程序由于定义方法和几个是不同,使用中会有许多不同之处,主要是空间和时间的差异。
⑴ 子程序由CALL指令调用,由RET指令返回,所以汇编后子程序的机器码只占有一个程序段,不管调用多少次均如此,较为节约内存。宏指令在每次宏调用处宏展开时,宏体都要占一个程序段,调用次数愈多,占用内存愈多。因此从内存空间开销来说,子程序优于宏指令。;⑵ 从程序的执行时间来分析,每调用???次子程序都要保护和恢复返回地址(断点)及寄存器内容(现场)等,要消耗较多的时间。宏指令调用时不需要这个过程,执行时间较短。因此,从执行时间来分析,宏指令又优于子程序。
综上所述,当某一需多次访问的程序段较长,访问次数又不是太多时,选用子程序结构较好。当某一需多次访问的程序段较短,访问次数又很频繁时,选用宏指令结构显然要更好些。;.EXE文件;5.5.1 用编辑程序建立汇编语言源程序文件;5.5.2 用汇编程序将.ASM文件汇编成目标程序文件.OBJ;MASM宏汇编的提示信息及回答;5.2.3 用连接程序生成可执行程序文件(EXE 文件);LINK程序的提示信息及回答;DATA SEGMENT
…
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA
START: MOV AX, DATA
MOV DS, AX
MOV ES, AX
…
MOV AH, 4CH
INT 21H
CODE ENDS
END START;DATA SEGMENT
…
DATA ENDS
CODE SEGMENT
MAIN FROC FAR
ASSUME CS:CODE, DS:DATA, ES:DATA
START: PUSH DS
XOR AX, AX
PUSH AX
MOV AX, DATA
MOV DS, AX
MOV ES, AX
…
RET
MAIN ENDP
CODE ENDS
END START
您可能关注的文档
最近下载
- 中关村储能产业技术联盟:中国储能技术与产业必威体育精装版进展与展望暨《储能产业研究白皮书2025》发布.docx
- TCIC 046-2021 固体替代燃料定义与分类.docx VIP
- (高清版)B-T 9797-2022 金属及其他无机覆盖层 镍、镍+铬、铜+镍和铜+镍+铬电镀层.pdf VIP
- 24秋新版部编版语文二年级上册同步生字卡-写字表字帖.pdf VIP
- 高中英语-The-Best-Medicine教学课件设计.ppt VIP
- 环境应急预案培训课件.pptx
- 中药药效物质基础及作用机制研究思路.pptx VIP
- 污水处理厂淹溺培训.pptx
- 不动产多测合一测绘技术设计书.pdf VIP
- 《电力电子技术》教案.pdf VIP
文档评论(0)