汇编语言宏指令语句

汇编语言宏指令语句

ID:36263645

大小:770.81 KB

页数:15页

时间:2019-05-07

汇编语言宏指令语句_第1页
汇编语言宏指令语句_第2页
汇编语言宏指令语句_第3页
汇编语言宏指令语句_第4页
汇编语言宏指令语句_第5页
资源描述:

《汇编语言宏指令语句》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、5.4宏指令语句1.宏指令、宏定义和宏调用宏指令是源程序中具有独立功能的一段程序代码。在汇编语言中,如果在源程序中需要多次使用同一个程序段,可以将这个程序段定义(宏定义)为一个宏指令,然后每次需要是,即可简单地用宏指令名来代替(称为宏调用),从而避免了重复书写,使源程序更加简洁、易读。宏定义由MASM宏汇编程序提供的伪指令实现,其格式为宏指令名MACRO[形式参数]ENDM宏调用的格式为宏指令名[实际参数]这就是说,只要在源程序中写上已定义过的宏指令名就算是调用该宏指令了。具有宏调用的源程序被汇编时,每个宏调用将被MASM进行宏展开。宏展开实际上是用宏定义式设计的宏体去代替相

2、应的宏指令,并用实际参数一一取代形参。…宏体由此可见,使用宏的过程共有三步:首先进行宏定义;然后可以进行宏调用;最后,汇编时由MASM进行宏展开。[例]若源程序中多处需要将AL和CL寄存器中的两位压缩型的BCD数相加,并将和送回BL寄存器,则可象下述这样定义宏指令,然后在需要的地方进行调用。DECADDMACROADDAL,CLDAAENDM显而易见,这是一个无形式参数的宏定义。如果对分别存放在任意8位寄存器或存储单元中的两个压缩型的BCD数进行加法运算,则可将上例宏定义改写为DECADD1MACROOPR1,OPR2MOVAL,OPR1ADDAL,OPR2DAAMOVOPR

3、1,ALENDM这是一个带有两个形式参数的宏定义。宏指令为DECADD1。例如有以下宏调用:DECADD1DL,BUFFERDECADD1AREA1,AREA2则汇编时进行宏展开,得到以下指令:DECADD1DL,BUFFER+MOVAL,DL+ADDAL,BUFFER+DAA+MOVDL,ALDECADD1AREA1,AREA2+MOVAL,AREA1+ADDAL,AREA2+DAA+MOVAREA1,AL宏扩展后,原来宏体中的指令前面都加上了符号“+”,以示区别。宏指令与子程序的区别在汇编语言程序设计中,宏指令和子程序都给设计者提供了很大方便。他们都是可被程序多次调用的程

4、序段,并且调用前必须由设计者事先根据需要按一定格式进行定义。然而,宏指令和子程序由于定义方法和几个是不同,使用中会有许多不同之处,主要是空间和时间的差异。⑴子程序由CALL指令调用,由RET指令返回,所以汇编后子程序的机器码只占有一个程序段,不管调用多少次均如此,较为节约内存。宏指令在每次宏调用处宏展开时,宏体都要占一个程序段,调用次数愈多,占用内存愈多。因此从内存空间开销来说,子程序优于宏指令。⑵从程序的执行时间来分析,每调用一次子程序都要保护和恢复返回地址(断点)及寄存器内容(现场)等,要消耗较多的时间。宏指令调用时不需要这个过程,执行时间较短。因此,从执行时间来分析,宏

5、指令又优于子程序。综上所述,当某一需多次访问的程序段较长,访问次数又不是太多时,选用子程序结构较好。当某一需多次访问的程序段较短,访问次数又很频繁时,选用宏指令结构显然要更好些。.EXE文件5.5汇编语言程序上机过程要想在计算机上运行汇编语言程序,必须首先对源程序进行汇编和连接。下图表示了对汇编语言源程序的编辑、汇编和连接的过程。手写程序.ASM文件.OBJ文件编辑程序编辑汇编程序汇编连接程序连接EDITMASMLINK汇编语言程序上机过程5.5.1用编辑程序建立汇编语言源程序文件建立一个汇编语言源程序,可以使用Windows系统下的记事本程序来编写,也可以使用DOS操作系统

6、下的EDIT程序来编写。例如从键盘输入二个数存入内存以DATA开始的二个单元中,然后选出其中的大数输出。设编辑后的汇编语言源程序名为:exp1.asm5.5.2用汇编程序将.ASM文件汇编成目标程序文件.OBJ在对汇编语言源程序文件(简称ASM文件)汇编时,汇编程序将对ASM文件进行二遍扫描。若程序文件中有语法错误,则在结束汇编后将指出源程序中的错误语句及错误类型。否则将在汇编后生成目标程序文件(即OBJ文件)完成汇编功能的是小汇编程序ASM或宏汇编程序MASM。汇编过程如下表所示:MASM宏汇编的提示信息及回答交叉参考文件用的文件名(缺省:无交叉参考文件)Crossrefe

7、rence[NUL.CRF]:(交叉参考文件名)列表文件名(缺省:无列表文件)Sourcelisting[NUL.LST]:(源列表文件名)可重新定位目标文件名(缺省:源文件名.OBJ)Objectfilename[Source.OBJ]:(目标文件名)欲汇编的.ASM源文件名(缺省:命令中的文件名)Sourcefilename[.ASM]:(源文件名)回答提示信息5.2.3用连接程序生成可执行程序文件(EXE文件)经汇编后产生的目标程序文件(OBJ文件)并不是可执行程序文件,必须经连接后才能成为可执行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。