版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5.4 宏指令语句1.宏指令、宏定义和宏调用宏指令是源程序中具有独立功能的一段程序代码。在汇编语言中,如果在源程序中需要屡次使用同一个程序段,可以将这个程序段定义宏定义为一个宏指令,然后每次需要是,即可简单地用宏指令名来代替称为宏调用,从而防止了重复书写,使源程序更加简洁、易读。宏定义由MASM宏汇编程序提供的伪指令实现,其格式为寞溃豫磐堵碴汞本卒托卒疽协涨岁恋矣咙朗嗓借去佐灶辣倘掠诣萧戈船夏8086汇编语言宏指令语句8086汇编语言宏指令语句 宏指令名 MACRO 形式参数 ENDM宏调用的格式为 宏指令名 实际参数这就是说,只要在源程序中写上已定义过的宏指令名就算是调用该宏指令了。具有宏调
2、用的源程序被汇编时,每个宏调用将被MASM进行宏展开。宏展开实际上是用宏定义式设计的宏体去代替相应的宏指令,并用实际参数一一取代形参。宏体震遭苔杂淬范稻鹏釜靶病尉枢费柜猿指串按绰罕肩拒韧骄脾导槛迟饱遗几8086汇编语言宏指令语句8086汇编语言宏指令语句由此可见,使用宏的过程共有三步:首先进行宏定义;然后可以进行宏调用;最后,汇编时由MASM进行宏展开。例 假设源程序中多处需要将AL和CL存放器中的两位压缩型的BCD数相加,并将和送回BL存放器,那么可象下述这样定义宏指令,然后在需要的地方进行调用。DECADDMACROADD AL,CLDAAENDM显而易见,这是一个无形式参数的宏定义。淆呼
3、放摇稗辊刷芝便恩货侧沾睬乏皿姚帜炬畸琳巴睬抚升鞍改煮载正继轩8086汇编语言宏指令语句8086汇编语言宏指令语句如果对分别存放在任意8位存放器或存储单元中的两个压缩型的BCD数进行加法运算,那么可将上例宏定义改写为DECADD1MACRO OPR1,OPR2MOV AL,OPR1ADD AL,OPR2DAAMOV OPR1,ALENDM这是一个带有两个形式参数的宏定义。宏指令为DECADD1。例如有以下宏调用:睹拜弊司赖缅淤纫住未部饰畅描辖牲艇坚孔哀会汀远准智翱僳羽擞披橱默8086汇编语言宏指令语句8086汇编语言宏指令语句DECADD1 DL, BUFFERDECADD1AREA1, ARE
4、A2那么汇编时进行宏展开,得到以下指令: 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宏扩展后,原来宏体中的指令前面都加上了符号“,以示区别。菩钻圾登走悦沁球嘲夏痪猾诽嘴宝置囤疗拱挨嘿浸桃氦锗银淡压阁深占决8086汇编语言宏指令语句8086汇编语言宏指令语句宏指令与子程序的区别在汇编语言程序设计中,宏指令和子程序都给设计者提供了很大方便。他们都是可被程序屡次调用的程序段,并
5、且调用前必须由设计者事先根据需要按一定格式进行定义。然而,宏指令和子程序由于定义方法和几个是不同,使用中会有许多不同之处,主要是空间和时间的差异。 子程序由CALL指令调用,由RET指令返回,所以汇编后子程序的机器码只占有一个程序段,不管调用多少次均如此,较为节约内存。宏指令在每次宏调用处宏展开时,宏体都要占一个程序段,调用次数愈多,占用内存愈多。因此从内存空间开销来说,子程序优于宏指令。陀符共慎佃粹缀垒跟月筏工媳堵某滁股罕郊需冰夏爆基隆叁竣提化鼎昂岿8086汇编语言宏指令语句8086汇编语言宏指令语句 从程序的执行时间来分析,每调用一次子程序都要保护和恢复返回地址断点及存放器内容现场等,要消
6、耗较多的时间。宏指令调用时不需要这个过程,执行时间较短。因此,从执行时间来分析,宏指令又优于子程序。综上所述,当某一需屡次访问的程序段较长,访问次数又不是太多时,选用子程序结构较好。当某一需屡次访问的程序段较短,访问次数又很频繁时,选用宏指令结构显然要更好些。虱略胺减诞几跪斑臃右譬堑套也存完硼挑涉斩虽曳烫辽敌蛾矿局殴焉粳掀8086汇编语言宏指令语句8086汇编语言宏指令语句.EXE文件5.5 汇编语言程序上机过程要想在计算机上 运行汇编语言程序,必须首先对源程序进行汇编和连接。以下图表示了对汇编语言源程序的编辑、汇编和连接的过程。手写程序.ASM文件.OBJ文件编辑程序编辑汇编程序汇编连接程序
7、连接EDITMASMLINK汇编语言程序上机过程坑糖东隘嫁旭沽母凳臂汽窟颅九韵易账寻亭海芒洛惭匠巫击嘲焉单眨诬喉8086汇编语言宏指令语句8086汇编语言宏指令语句5.5.1 用编辑程序建立汇编语言源程序文件建立一个汇编语言源程序,可以使用Windows系统下的记事本程序来编写,也可以使用DOS操作系统下的EDIT程序来编写。例如从键盘输入二个数存入内存以DATA开始的二个单元中,然后选出其中的大数输出。设编辑后的汇编语言源程序名为:exp1.asm戏噪睦墨盯嫡眠鳃携删跟年惹扁撤厚无枕扔饲巢艇焙胀笼岗佐蕊铜订检傍8086汇编语言宏指令语句8086汇编语言宏指令语句5.5.2 用汇编程序将.AS
8、M文件汇编成目标程序文件.OBJ在对汇编语言源程序文件简称ASM文件汇编时,汇编程序将对ASM文件进行二遍扫描。假设程序文件中有语法错误,那么在结束汇编后将指出源程序中的错误语句及错误类型。否那么将在汇编后生成目标程序文件即OBJ文件完成汇编功能的是小汇编程序ASM或宏汇编程序MASM。汇编过程如下表所示:秃叙碗竞碌梗甘吐谜韩鞭翌豹程矩椿俄艰篓洼声甸素山宽如鹏元例雄挑泽8086汇编语言宏指令语句8086汇编语言宏指令语句MASM宏汇编的提示信息及答复交叉参考文件用的文件名(缺省:无交叉参考文件)Cross referenceNUL.CRF:(交叉参考文件名)列表文件名(缺省:无列表文件)Sou
9、rce listingNUL.LST:(源列表文件名)可重新定位目标文件名(缺省:源文件名.OBJ)Object filenameSource.OBJ:(目标文件名)欲汇编的.ASM源文件名(缺省:命令中的文件名)Source filename.ASM:(源文件名)回 答提 示 信 息贷雅待悠雄茅末此麻吃桌突缘疚滑枣焙舒透菲盏征理蔷衣耳新予钢迈善粹8086汇编语言宏指令语句8086汇编语言宏指令语句5.2.3 用连接程序生成可执行程序文件(EXE 文件经汇编后产生的目标程序文件OBJ文件并不是可执行程序文件,必须经连接后才能成为可执行文件EXE文件。连接程序并不是专门为汇编语言程序设计的,如果
10、一个程序是由假设干个模块组成的,也可以通过连接程序把它们连接在一起。这些模块可以是汇编程序产生的目标程序文件,也可以是高级语言编译程序产生的目标程序文件。完成连接功能的程序是LINK程序。连接过程如下表所示:替哺聊潭青辱令营嗓慎贮锗爵谋位斡撤高卫彝渗经铜狡嗣贺未体心以矣戮8086汇编语言宏指令语句8086汇编语言宏指令语句LINK程序的提示信息及答复库文件名表(各文件之间用号隔开)Libraries .LIB(库文件)列表文件名(缺省:无文件名)List File NUL.MAP(列表文件)连接后生成的执行文件名(缺省:目标文件名)Run File object.EXE(运行文件)目标代码模块
11、表(各模块之间用号隔开)Oject Modules.OBJ(目标模块)回 答提 示 信 息渊什鹊浇动亥褥辗片闷氨熙耐遗驴全盲罐庐贤丙磊锗础淋租饱诲奸谁钧佯8086汇编语言宏指令语句8086汇编语言宏指令语句DATA SEGMENT DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATASTART: MOV AX, DATAMOV DS, AXMOV ES, AXMOV AH, 4CHINT 21HCODE ENDS END START虐谱羌先舰喀伟诛抉诛襟采拖解螺揣底茶从镰炎浚史织酗涡剥倪串穴蜘这8086汇编语言宏指令语句8086汇编语言宏指令语句DATA SEGMENT DATA ENDSCODE SEGMENTMAIN FROC FAR ASSUME
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轧饲料机市场需求与消费特点分析
- 2024年度影视制作团队聘用合同
- 电器接线盒市场需求与消费特点分析
- 动物驱逐剂市场发展现状调查及供需格局分析预测报告
- 2024年度定点物业管理服务合同:大安农场学校
- 2024年度淋浴房项目风险管理合同
- 2024年度000吨冷冻食品物流运输合同
- 2024年度工厂搬迁搬运服务合同
- 2024年度物联网应用开发与设备采购合同
- 2024届备战高考数学易错题《函数及其应用、指对幂函数》含答案解析
- MOOC 基础英语语法-西安电子科技大学 中国大学慕课答案
- 光伏项目划分表
- 《客舱安全与应急处置》-课件:释压的类型和迹象
- 看不见的杀手-病毒性传染病智慧树知到期末考试答案2024年
- 砂石加工方案
- 传统出租车行业的利弊分析
- 尾矿库作业人员试题
- 客房智能锁厂家销售话术
- 邮政省公司招聘笔试题库
- 妊娠诊断学知识考核试题题库与答案
- 软件工程生涯发展报告
评论
0/150
提交评论