实验六 宏汇编程序设计.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验六 宏汇编的程序设计 〇、实验目的和要求: 1. 熟练掌握宏定义和宏调用的方法。 2. 掌握条件汇编的实现方法。 一、实验提要:  宏的概念和作用 宏是源程序中一段有独立功能的程序代码。它只需定义一次,就可以用一条 宏指令多次调用它。  宏定义、宏调用和宏展开: 宏定义是用一对伪操作指令 MACRO 和 ENDM 来实现的,其格式如下: MACRO_NAME MACRO [DUMNY_PARAMETER_LIST] (宏定义体) ENDM  MACRO 和 ENDM 是一对用来定义“宏”的伪操作指令,亦即为“宏定义指令”。  MACRO_NAME是设定宏定义的名称,亦即“宏指令名”(可简称为“宏名”) 。调用时就 使用宏指令名来调用该宏定义。宏指令名的第一个符号必须是字母,其后可以跟字母、 数字或下划线字符等有效的汇编语言字符。  DUMNY_PARAMETER_LIST 称为哑元表,它给出宏定义中所用到的形式参数(也称“虚参” 或“哑元”) ,哑元之间用逗号隔开。根据实际情况,宏定义可以没有形式参数,亦 即可以不设置哑元表。  宏定义体是一组具有独立功能的程序代码,处于 MACRO 和 ENDM 之间。 宏调用就是在源程序中调用已有的宏定义,直接使用宏定义名加上实参(如 果宏定义有形参) 即可,其格式如下:: MACRO_NAME [ACTUAL_PARAMETER_LIST] ACTUAL_PARAMETER_LIST 称为实元表,它的每一项称为“实元”,相互之间用逗号隔开, 分别与宏定义中的哑元表的各项形式参数( “虚参”)相对应。 宏展开就是在源程序被汇编时,汇编程序用宏定义体取代源程序中的宏指 令,而宏定义中的哑元被宏调用所带的实元所取代。  宏展开后,即用实元取代哑元后,所得到的宏定义体的各条语句必须是有效的,亦即 必须符合汇编语法,否则汇编程序将会提示出错。  在宏展开进行实元取代哑元时,实元和哑元是依次一一对应的,即第一个实元取代第 一个哑元,第二个实元取代第二个哑元……依次类推。  通常,实元的个数和哑元的个数是相等的(可以通过重新修改宏定义来实现)。但是, 汇编程序并不要求它们必须相等。若实元个数大于哑元个数,则多余的实元不予考虑; 若实元个数小于哑元个数,则多余的哑元作“空”处理。 例如: 用宏定义指令设计一个宏,以完成两个字操作数相乘,得到一个 16 位的乘积。 - 211 - 则宏定义可表示如下: MULTI_2W MACRO OPR1, OPR2, RESULT PUSH DX ;保存 DX 原值 PUSH AX ;保存 AX 原值 MOV AX, OPR1 ;取第一个操作数 OPR1,存在 AX 中 IMUL OPR2 ;与第二个操作数 OPR2 相乘 MOV RESULT, AX ;结果存入结果变量 RESULT 中 POP AX ;恢复 AX 原值

您可能关注的文档

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档