汇编语言程序设计5.ppt

  1. 1、本文档共112页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计5课件

2.宏定义中调用宏 定义的格式如下: MAC1 MACRO ;MAC1宏定义开始 ┇ ENDM ;MAC1宏定义结束 MAC2 MACRO ;MAC2宏定义开始 ┇ MAC1 ;调用宏MAC1 ┇ ENDM ;MAC2宏定义结束 需要说明的是:在宏定义中使用宏调用,必须要先定义后调用。 汇编语言基本程序设计 5宏汇编 例5.29 定义一个宏,求两个数差的绝对值,要求用宏定义中调用宏。 宏定义如下: DIF MACRO X,Y MOV AX,X SUB AX,Y ENDM ABSDIF MACRO V1,V2,V3 LOCAL CONT PUSH AX DIF V1,V2 CMP AX,0 JGE CONT NEG AX CONT:MOV V3,AX POP AX ENDM 汇编语言基本程序设计 5宏汇编 宏调用如下: ABSDIF [BX],[SI],[DI] 宏展开如下: 1 PUSH AX 2 MOV AX,[BX];二级宏展开前加2以示区别 2 SUB AX,[SI] 1 CMP AX,0 1 JGE ??0000 1 NEG AX 1??0000: MOV [DI],AX 1 POP AX 5.6.1 重复汇编 在编写源程序时,有时会遇到完全相同的或几乎完全相同的一组代码,这时可以用重复伪指令来重复汇编,以达到简化程序的目的。重复汇编有3种重复伪操作,即REPT、IRP和IRPC,它们可以在宏定义体内,也可在宏定义体之外使用。下面分别介绍: 1.REPT伪操作 伪操作格式: REPT 表达式 ┇ (重复语句) ENDM 该伪操作的功能是将重复语句重复表达式的值所指定的次数,其中重复语句内的所有项必须在之前的源程序中定义过,否则汇编时指示出错。 5.6 重复汇编与条件汇编 例5.30 将数字0~9的ASCII码填入数组TABLE中 NUM=30H TABLE LABEL BYTE REPT 10 DB NUM NUM=NUM+1 ENDM 汇编程序将其汇编为: 1 DB 30H 1 DB 30H ┇ ┇ 1 DB 39H 5.6 重复汇编与条件汇编 2.IRP伪操作 伪操作格式: IRP 形参,<实参表> ┇ (重复语句) ENDM 该伪操作的功能是将重复语句重复N次,其中N是实参表的实参个数,因此,该伪操作称为不定重复伪操作。每重复一次,重复语句中的形参依次用实参表中的实参来代替。实参表中的实参用逗号分开,并且一定要用尖括号将实参括起来。 例5.31 通过不定重复伪操作,产生AX、BX、CX和DX压入堆栈的指令序列。 IRP REG,<AX,BX,CX,DX> PUSH REG ENDM 汇编程序将其汇编为: 1 PUSH AX 1 PUSH BX 1 PUSH CX 1 PUSH DX 5.6 重复汇编与条件汇编 3.IRPC伪操作 该伪操作的格式为: IRPC 形参,字符串 ┇ (重复语句) ENDM 该伪操作与IRP伪操作类似,重复语句重复的次数是由字符串中字符的个数决定。每重复一次,重复语句中的形参依次用字符串中的字符来代替。字符串中的字符不用逗号分开。 例5.32 通过IRPC伪操作,产生将例5.31中的寄存器从堆栈中恢复的指令序列。 IRPC M,DCBA POP MX ENDM 汇编程序将其汇编为: 1 POP DX 1 POP CX 1 POP BX 1 POP AX 5.6 重复汇编与条件汇编 5.6.2 条件汇编 汇编程序根据IF××伪操作的条件将一段源程序包括在汇编语言程序内或者将它排除在外,这就是条件汇编。 条件汇编格式: IF×× 表达式 ┇ (程序段1) [ELSE ┇ (程序段2) ] ENDIF 该伪操作的功能是若指定的表达式为非零值时,条件成立,则汇编程序将汇编程序段1中的语句;否则,汇编程序段2中的语句。当条件不成立时,且语句中也没有ELSE及程序段2,则汇编程序跳过程序段1,执行ENDIF后面的指令。 IF××中的××表示多个条件汇编伪操作。如表5.2所示。 5.6 重复汇编与条件汇编 条件汇编伪操作可以在宏定义体内,也可在宏定义体之外使用。并且允许嵌套任意次。

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档