《汇编语言程序设计》第8章.ppt
《《汇编语言程序设计》第8章.ppt》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》第8章.ppt(20页珍藏版)》请在三一办公上搜索。
1、第8章 高级语言汇编技术 宏汇编 重复汇编 条件汇编伪指令,8.1 宏汇编,在编写汇编语言程序的过程中,有时某个程序段要出现许多次,有时只是参数不同,但功能完全一样,则这样的程序段可以定义成一个指令,并且称它为宏指令。8.1.1 宏定义 若想在汇编语言中使用宏指令,就要定义一个宏。按照是否使用参数,可以将宏指令分为如下两种格式。1.不带参数的宏定义 宏指令名 MACRO 宏体 ENDM,2.带参数的宏定义:宏指令名 MACRO 形参1,形参2,宏体 ENDM【例8.2】将两个存储单元数据交换的程序段定义成一个宏指令EXCH_MEM。EXCH_MEMMACRO MEM_1,MEM_2,REGMO
2、V REG,MEM_1 XCHG REG,MEM_2 MOV MEM_1,REG ENDM MEM_1,MEM_2,REG是形式参数,形参可以是多个,各个形参之间用逗号相隔。对于带参数的宏定义,宏体中程序段有些部分允许宏调用时作适当修改。在宏定义中,把允许修改的分用形式参数(简称形参)来表示,当宏调用时就用相应的实参数来取代。,8.1.2 宏调用和宏展开 1.宏调用 在汇编语言中使用已定义过的宏指令,称为宏调用。按照宏指令定义的格式,宏调用也可分为两种格式。(1)无参数宏调用:宏指令名(2)带参数宏调用:宏指令名 实参1,实参2,,2.宏展开 当宏汇编程序扫描到宏指令语句(即宏调用)时,宏汇编
3、程序就把宏指令定义中宏体的程序段代码替代宏指令语句。若是带参数的宏调用,则同时用相应的实参替代宏体中对应形参的位置,并对原有宏体代码作修改。下面是一个源程序的列表文件,它展示了宏定义、宏调用和宏展开的全部过程。在列表文件中,左边带“+”号的指令是宏汇编程序在宏展开时自动生成的指令。宏定义本身不生成任何目标代码,宏指令语句本身也不生成目标代码,它仅表示宏调用出现的位置。,EXCH_MEMMACRO MEM_l,MEM_2,REG MOV REG,MEM_1XCHG REG,MEM_2MOV MEM_1,REGENDMDATASEGMENT DA_W1 DW 55AAH DA_W2 DW 6688
4、H DATA ENDSCODE SECMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATA MOV DS,AX;宏调用和宏展开 EXCH_MEM DA_W1,DA_W2,AX;宏指令语句+MOV AX,DA_Wl+XCHG AX,DA_W2+MOV DA_W1,REG MOV AH,4CHINT 21HCODE ENDS END START,8.1.3 宏调用中的参数使用 为了宏定义和引用的某些特殊需要,有时实参是由字符、空格等特殊符号组成的,因此汇编程序支持几个具有特定含义的运算符。1连接运算符&在宏定义中,如果形式参数与其它字符连接在一起,
5、或形式参数出现在字符串之中,那么,就必须使用连接运算符(&)。在宏指令定义的具体使用时,连接操作符&可以在形参的前面,也可在形参的后面。在宏指令展开时,对应形参的实参就与它前面或后面的符号连接在一起构成一个新的符号。,【例8.3】宏指令SHIFT_N功能是:对某一个寄存器进行由COUNT确定的移位次数,由DIRECT确定逻辑或算术左右移位,移位的方向可通过&将S和DIRECT对应的实参连接起来。SHIFT_N MARCOREG,DIRECT,COUNT MOVCL,COUNT S&DIRECT REG,CL ENDM 如SHIFT_N BX,HR,3的宏指令的展开为:+MOV CL,3+SHR
6、 BX,CL 这样就实现了使BX逻辑右移3位。形参DIRECT被实参HR代替,通过连接符&将S和HR连接成SHR。同理SHIFT_N AX,HL,5可实现AX逻辑左移5位。,2.文本操作符 文本操作符是一对尖括号,用它括起来的内容将作为一个字符串来进行形式参数的整体替换。在宏引用时,如果实参内包含逗号、空格等间隔符,则必须使用该操作符,以保证实参的完整性。如果实参是某个具有特殊含义的字符,为了使它只表示该字符本身,也需要用该运算符括起来。NUMBERMACROTHEDATADBTHEDATAENDM 假设在程序中调用此宏指令:DATA SEGMENT NUMBER DATA ENDS 则宏展开
7、为:DATA SEGMENT+DB 1,3,5 DATA ENDS 如果不加,则在宏展开为:+DB 1;而3,5按规则被忽略,3表达式操作符 进行宏调用时,如要在实参中使用“”,则在宏指令调用时宏汇编程序将获取“”后常数表达式的值作为参数,而非表达式本身,如:NUMBER MACRO X,Y,Z,DB X,Y,Z ENDM 若宏调用为:I EQU 10 J EQU 50 NUMBER 16,I+J,J-I 则相应的宏展开为:+DB 16,60,40,4字符操作符!字符操作符!的使用表明,“!”后的字符不是特殊字符,而是普通字符。这样对于包含在“”、“!”、“%”之间的文本串,汇编程序将能以普通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言程序设计 汇编语言 程序设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6527960.html