- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
宏定义与子程序的区别(精).ppt
第七章 高级汇编语言技术 7.2 重复汇编 在编写汇编语言程序中,有时需要进行连续地重复完成相同的或几乎完全相同的操作,这时可以使用重复汇编,使书写的程序变得相当简洁。 重复汇编有两种格式 重复伪操作 不定重复伪操作 [说明] REPT和ENDM为伪指令,它们必须成对出现,中间是要重复的指令体,重复的次数由表达式的值来决定。 注意:重复伪操作并不一定要用在宏定义体内。 [格式] REPT 表达式 …. ENDM 7.2.1 重复伪操作 例题:7.13 X=0 REPT 10 X=X+1 DB X ENDM 汇编后产生 DB 1 1 DB 2 DB 3 . 1 DB 10 例题:7.14 将字符A-Z填入到数组TABLE CHAR =‘A’ TABLE LABLE BYTE REPT 26 DB CHAR CHAR=CHAR+1 ENDM 汇编后产生 1 DB 41H 1 DB 42H …… 1 DB 5AH 阅读例7.15 7.16 IRP 伪操作 [格式] IRP 形式参数,<参数表> … (指令体) ENDM [说明] IRP和ENDM伪指令必须成对出现,其间是要重复的指令体。重复的次数由参数表中参数的个数所决定,而且每重复一次,依次用参数表中的参数来代替形式参数。参数表必须用尖括号括起来,参数间用逗号分隔。 7.2.2 不定重复伪操作 IRP伪操作 例题:7.17 IRP X, 1,2,3,4,5,6,7,8,9 DB X ENDM 汇编后 DB 1 1 DB 2 . . 1 DB 9 阅读例7.18 IPRC伪操作 [格式] IRPC 形式参数,字符串(或<字符串>) … (指令体) ENDM [说明] 伪指令IRPC和ENDM必须成对出现,其间是重复的指令体,重复的次数取决于字符串中字符的个数,在每次重复时,依次用字符串的字符代替形式参数。 7.2.2 不定重复伪操作 IPRC伪操作 例题:7.19 IRPC X, DB X+1 ENDM 汇编后 DB 1 1 DB 2 1 DB 8 阅读例7.20 练习: 1、定义100个初值为32的字节单元,该存储单元的起始符号地址为Table Table LABEL TYPE REPT 100 DB 32 ENDM 练习: 2、计算1+2+…+1000,并把其值存入寄存器AX … MOV AX, 0 COUNT = 1 REPT 1000 ADD AX, COUNT COUNT = COUNT + 1 ENDM …… 练习: 3、定义10个字节存储单元,保存数字0~9的平方数 … IRP CX, 0123456789 DB? X*X ENDM …… * 方法2、当这组指令较短或不适合把它写成一个子程序时,可以把它义成一个宏,每次需要执行时就去调用这个宏。 如果在一个程序中多次使用同一组指令时,为了避免每次都要重写,该如何解决? 方法1、把这组指令写成一个子程序,每次需要执行时只要调用这个子程序就可以了。 7.1 宏汇编 为用户提供更加容易、更加灵活、更加向高级语言靠拢的汇编工具。 DEBUG不认识宏指令 宏:源程序中一段有独立功能的程序代码。 宏指令:用户自定义的指令。在编程时,将多次使用的功能 用一条宏指令来代替。 汇编语言程序语句 指令 伪指令(伪操作) 宏指令 宏定义 macro_name MACRO [哑元表] ; 形参/虚参 [ LOCAL 标号表 ] …… …… ENDM * macro_name 宏指令名(宏名),调用时用。 第一个符号必须是字母(注意与名称的差异) * [哑元表] 形参表,哑
文档评论(0)