安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 例定义取绝对值的宏指令如下:宏展开后的指令为 ABS MACRO OPS LOCAL PLUS CMP OPS, 0 111 CMP CX, 0 JG??0000 NEG CX UGE PLUS 1??0000:Mo,cx NEG OPS PLUS: Mov A, OPS Mov BX, AX ENDM 宏调用 ABS CX 111 CMP DX, 0 JGE??0001 NEG DX Mov BX, AX 1??0001:Mo AX, DX ABS DX ch7 16
安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章 ch7 16 例 定义取绝对值的宏指令如下: ABS MACRO OPS LOCAL PLUS CMP OPS,0 JGE PLUS NEG OPS PLUS:MOV AX,OPS ENDM 宏调用: ABS CX MOV BX,AX ABS DX 宏展开后的指令为: 1 CMP CX,0 1 JGE ??0000 1 NEG CX 1??0000:MOV AX,CX MOV BX,AX 1 CMP DX,0 1 JGE ??0001 1 NEG DX 1??0001: MOV AX,DX
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 714在宏定义内使用宏 宏定义中允许使用宏调用,限制条件是:必须先定义 dif macro x,y difsqr var1, var2,var3调用 mov ax,x sub ax, y endm 宏展开 difsar macro oprl,opr2,result push dx push dx push ax push ax dif oprl, opr mov ax,var mov result, ax sub ax var2 pop ax mov vars.ax pop dx pop ax endm pop
7.1.4 在宏定义内使用宏 宏定义中允许使用宏调用,限制条件是:必须先定义 dif macro x , y mov ax,x sub ax ,y endm difsqr macro opr1,opr2,result push dx push ax dif opr1,opr2 mov result,ax pop ax pop dx endm difsqr var1,var2,var3 调用 宏展开 1 push dx 1 push ax 2 mov ax,var1 2 sub ax,var2 1 mov var3,ax 1 pop ax 1 pop dx 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 715列表伪操作 Masm提供了xal,as叫l来控制汇编清单中宏展 开的列出情况 xall为默认情况,它指示清单中只列出产生目标 代码的宏展开; la列出包括注释在内的所有宏展开; sal则不列出任何信息
7.1.5 列表伪操作 Masm提供了.xall , .lall, sall来控制汇编清单中宏展 开的列出情况 .xall 为默认情况,它指示清单中只列出产生目标 代码的宏展开; .lall 列出包括注释在内的所有宏展开; .sall 则不列出任何信息; 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章
安徽理工太骨计算机科学与技术系李兆 《汇编语言》第7章 71.6宏库的建立与调用 如果程序中定义了很多宏,可以把这 些宏组合起来建立一个独立的文件,这个只包 含若干个宏定义的文件称为宏库。扩展名是 mac或inc来表示。当需要使用宏库中的某些 宏定义时,只需要在该程序的开始用 JINCLUDE 语句说明 INCLUDE C: \MACRO MAC
如果程序中定义了很多宏,可以把这 些宏组合起来建立一个独立的文件,这个只包 含若干个宏定义的文件称为宏库。扩展名是 mac 或inc来表示。当需要使用宏库中的某些 宏定义时,只需要在该程序的开始用INCLUDE 语句说明 INCLUDE C:\MACRO.MAC 安徽理工大学 计算机科学与技术系 李敬兆 《汇编语言》第7章 7.1.6 宏库的建立与调用