- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
六宏汇编的程序设计
实验六 宏汇编的程序设计
〇、实验目的和要求:
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
文档评论(0)