汇编语言宏指令语句PPT课件_第1页
汇编语言宏指令语句PPT课件_第2页
汇编语言宏指令语句PPT课件_第3页
汇编语言宏指令语句PPT课件_第4页
汇编语言宏指令语句PPT课件_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 5 4宏指令语句 1 宏指令 宏定义和宏调用宏指令是源程序中具有独立功能的一段程序代码 在汇编语言中 如果在源程序中需要多次使用同一个程序段 可以将这个程序段定义 宏定义 为一个宏指令 然后每次需要是 即可简单地用宏指令名来代替 称为宏调用 从而避免了重复书写 使源程序更加简洁 易读 宏定义由MASM宏汇编程序提供的伪指令实现 其格式为 2 宏指令名MACRO 形式参数 ENDM宏调用的格式为宏指令名 实际参数 这就是说 只要在源程序中写上已定义过的宏指令名就算是调用该宏指令了 具有宏调用的源程序被汇编时 每个宏调用将被MASM进行宏展开 宏展开实际上是用宏定义式设计的宏体去代替相应的宏指令 并用实际参数一一取代形参 宏体 3 由此可见 使用宏的过程共有三步 首先进行宏定义 然后可以进行宏调用 最后 汇编时由MASM进行宏展开 例 若源程序中多处需要将AL和CL寄存器中的两位压缩型的BCD数相加 并将和送回BL寄存器 则可象下述这样定义宏指令 然后在需要的地方进行调用 DECADDMACROADDAL CLDAAENDM显而易见 这是一个无形式参数的宏定义 4 如果对分别存放在任意8位寄存器或存储单元中的两个压缩型的BCD数进行加法运算 则可将上例宏定义改写为DECADD1MACROOPR1 OPR2MOVAL OPR1ADDAL OPR2DAAMOVOPR1 ALENDM这是一个带有两个形式参数的宏定义 宏指令为DECADD1 例如有以下宏调用 5 DECADD1DL BUFFERDECADD1AREA1 AREA2则汇编时进行宏展开 得到以下指令 DECADD1DL BUFFER MOVAL DL ADDAL BUFFER DAA MOVDL ALDECADD1AREA1 AREA2 MOVAL AREA1 ADDAL AREA2 DAA MOVAREA1 AL宏扩展后 原来宏体中的指令前面都加上了符号 以示区别 6 宏指令与子程序的区别在汇编语言程序设计中 宏指令和子程序都给设计者提供了很大方便 他们都是可被程序多次调用的程序段 并且调用前必须由设计者事先根据需要按一定格式进行定义 然而 宏指令和子程序由于定义方法和几个是不同 使用中会有许多不同之处 主要是空间和时间的差异 子程序由CALL指令调用 由RET指令返回 所以汇编后子程序的机器码只占有一个程序段 不管调用多少次均如此 较为节约内存 宏指令在每次宏调用处宏展开时 宏体都要占一个程序段 调用次数愈多 占用内存愈多 因此从内存空间开销来说 子程序优于宏指令 7 从程序的执行时间来分析 每调用一次子程序都要保护和恢复返回地址 断点 及寄存器内容 现场 等 要消耗较多的时间 宏指令调用时不需要这个过程 执行时间较短 因此 从执行时间来分析 宏指令又优于子程序 综上所述 当某一需多次访问的程序段较长 访问次数又不是太多时 选用子程序结构较好 当某一需多次访问的程序段较短 访问次数又很频繁时 选用宏指令结构显然要更好些 8 EXE文件 5 5汇编语言程序上机过程 要想在计算机上运行汇编语言程序 必须首先对源程序进行汇编和连接 下图表示了对汇编语言源程序的编辑 汇编和连接的过程 手写程序 ASM文件 OBJ文件 EDIT MASM LINK 汇编语言程序上机过程 9 5 5 1用编辑程序建立汇编语言源程序文件 建立一个汇编语言源程序 可以使用Windows系统下的记事本程序来编写 也可以使用DOS操作系统下的EDIT程序来编写 例如从键盘输入二个数存入内存以DATA开始的二个单元中 然后选出其中的大数输出 设编辑后的汇编语言源程序名为 exp1 asm 10 5 5 2用汇编程序将 ASM文件汇编成目标程序文件 OBJ 在对汇编语言源程序文件 简称ASM文件 汇编时 汇编程序将对ASM文件进行二遍扫描 若程序文件中有语法错误 则在结束汇编后将指出源程序中的错误语句及错误类型 否则将在汇编后生成目标程序文件 即OBJ文件 完成汇编功能的是小汇编程序ASM或宏汇编程序MASM 汇编过程如下表所示 11 MASM宏汇编的提示信息及回答 12 5 2 3用连接程序生成可执行程序文件 EXE文件 经汇编后产生的目标程序文件 OBJ文件 并不是可执行程序文件 必须经连接后才能成为可执行文件 EXE文件 连接程序并不是专门为汇编语言程序设计的 如果一个程序是由若干个模块组成的 也可以通过连接程序把它们连接在一起 这些模块可以是汇编程序产生的目标程序文件 也可以是高级语言编译程序产生的目标程序文件 完成连接功能的程序是LINK程序 连接过程如下表所示 13 LINK程序的提示信息及回答 14 DATASEGMENT DATAENDSCODESEGMENTASSUMECS CODE DS DATA ES DATASTART MOVAX DATAMOVDS AXMOVES AX MOVAH 4CHINT21HCODEENDSENDSTART 15 DATASEGMENT DATAENDSCODESEGMENTMAINFROCF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论