[工学]汇编语言程序设计Chapter9-10.pptVIP

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

汇编语言程序设计 第9章 宏 9.5.2 条件汇编伪指令的举例 例9.14:编写一个可用DOS或BIOS功能调用输入字符的宏定义。 解: 方法1:使用条件汇编伪指令IF INPUT MACRO IF DOS ;当符号DOS不为0时,则使用DOS的功能调用 MOV AH, 1H INT 21H ELSE ;否则,将使用BIOS的功能调用 MOV AH, 10H INT 16H ENDIF ENDM 在引用宏INPUT时,汇编程序会根据DOS是否为0来生成不同的程序段。 第9章 宏 例9.15:编写一个可用功能调用输入字符的宏定义。 解: READCH MACRO char MOV AH, 1H INT 21H ;接受一个字符,并存入AL中 IFNB char ;若参数char有实参与之对应 IFDIF char, AL ;若参数char≠AL,则把字符保存到实参中 MOV char, AL ENDIF ENDIF ENDM * * * * 吴 向 军 中山大学计算机科学系 2003.03.20 第9章 宏 9.1.1 宏的定义  宏是用来代表一个具有特定功能的程序段,它只需在源程序中定义一次,但可在源程序中引用多次。只要在编写程序时需要它,就可以直接使用它。 9.1 宏的定义和引用 在使用宏之前,必须先定义宏。定义宏一般格式如下: 宏名 MACRO [形参1, 形参2, ……] … ;宏的定义体 ENDM 在书写宏定义时,必须遵照下列规定: 第9章 宏 MACRO和ENDM是二个成对出现的关键字,分别表示宏定义的开始和结束; MACRO和ENDM之间的部分是宏的定义体,它是由指令、伪指令或引用其它宏所组成的程序片段,是宏所包含的具体内容; “宏名”是由程序员指定的一个合法的标识符,它代表该宏; 宏名可以与指令助忆符、伪指令名相同。在这种情况下,宏指令优先,而同名的指令或伪指令都失效; 在ENDM的前面不要再写一次宏名,这与段或子程序定义的结束方式不同; 在宏定义的首部可列举若干形式参数(也称哑元),参数之间要用逗号分隔。 第9章 宏 例9.1:定义一个把16位数据寄存器压栈的宏。 PUSHR MACRO PUSH AX PUSH BX PUSH CX PUSH DX ENDM 例9.2:定义二个字存储变量相加的宏。 MADDM MACRO OPRD1, OPRD2 MOV AX, OPRD2 ADD OPRD1, AX ENDM 第9章 宏 9.1.2 宏的引用 在源程序中,一旦定义了某宏,那么,在该程序的任何位置都可直接引用该宏,而不必重复编写相应的程序段。引用宏的一般格式如下: 宏名 [实参1, 实参2, ……] 其中:实参的位置要与形参的位置要对应,但实参个数可以与形参个数不相等。 当实参的个数多于形参的个数时,多出的实参被忽略; 当实参的个数少于形参的个数时,没有实参对应的形参用“空”来对应。 在宏展开时,所得到的指令必须是合法的汇编指令,否则,汇编程序将会给出出错信息。 第9章 宏 9.1.3 宏的参数传递方式 引用宏时,参数是通过“实参”替换“形参”的方式来实现传递的。参数形式灵活多样,参数可以是常数、寄存器、存储单元和表达式,还可以是指令的操作码。 例9.3:定义二个字存储变量相加和相减的宏。 方法1:定义二个宏,分别实现存储变量的加操作和减操作 MADDM MACRO OPRD1, OPRD2 MOV AX, OPRD2 ADD OPRD1, AX ENDM MSUBM MACRO OPRD1, OPRD2 MOV AX, OPRD2 SUB OPRD1, AX ENDM 方法2:定义一个宏,把存储变量的“加”和“减”操作合并在一起 MOPM MACRO OP, OPRD1, OPRD2 MOV AX, OPRD2 OP OPRD1, AX ENDM 其中:参数OP是一个对应于操作码的形式参数。 第9章 宏 9.1.5 宏与子程序的区别 宏和子程序都是为了简化源程序的编写,提高程序的可维护性,但是它们二者之间存在着以下本质的区别: 在源程序中,通过书写宏名来引用宏,而子程序是通过CALL指令来调用; 汇编程序对宏通过宏扩展来加入其定义体,宏引用多少次,就相应扩展多少次,所以,引用宏不会缩短目标程序;而子程序代码在目标程序中只出现一次,调用子程序是执行同一程序段,因此,目标程序也得到相应的简化; 宏引用时

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档