解】宏展开后的结果是: T MOV AH 2 MOV DL, 21H T MOV AH, 2 MOV DL T INT 21H MOV ah, 4CH 21H 2021/2/19 80x86汇编语言程序设计
2021/2/19 80x86汇编语言程序设计 【解】宏展开后的结果是: + MOV AH,2 + MOV DL, '*' + INT 21H + MOV AH,2 + MOV DL, '*' + INT 21H MOV AH,4CH INT 21H
7.1.2与宏有关的伪指令 1.L0CAL伪指令用来指定宏内局部符号 LOCAL符号名, 符号名 作用:在宏展开时,MASM将源文件中的所有局部符号统一按出现次序 替换为唯一的标识符(?000?FFFF),以避免符号的重复定义。 2. EXITM伪指令 用来立即终止宏展开,通常与条件汇编结合使用。MASM忽略 EXITM 与ENDM之间的所有语句。 2021/2/19 80x86汇编语言程序设计
2021/2/19 80x86汇编语言程序设计 7.1.2 与宏有关的伪指令 1. LOCAL伪指令—用来指定宏内局部符号 LOCAL符号名,...,符号名 作用:在宏展开时,MASM将源文件中的所有局部符号统一按出现次序 替换为唯一的标识符(??0000 ~ ??FFFF),以避免符号的重复定义。 2. EXITM 伪指令 用来立即终止宏展开,通常与条件汇编结合使用。MASM忽略EXITM 与ENDM之间的所有语句
【例7:161设有如下宏定义 sum macro ab LOCAL next MOV CX.a LEA BX.b XOR AXAX next: ADD AX,BX ADD BX. 2 LOOP next ENDM 并已知buf和bu是已定义的两个变量,展开下面的宏调用 sum 5.buff sum 7.buf2 2021/2/19 80x86汇编语言程序设计
2021/2/19 80x86汇编语言程序设计 【例7.16】设有如下宏定义: sum MACRO a,b LOCAL next MOV CX,a LEA BX,b XOR AX,AX next:ADD AX,[BX] ADD BX,2 LOOP next ENDM 并已知buf1和buf2是已定义的两个变量,展开下面的宏调用: sum 5,buf1 sum 7,buf2
解】宏展开结果是 MOV CX. Lea BX buf1 T XOR AXAX t??0000: ADD AX,IBXI ++ ADD BX.2 LOOP?:0000 MOV CX. 7 ++ LEA BX.buf2 XOR AXAX t??0001: ADD AX,IBXI ADD BX. 2 DOOP?20001 2021/2/19 80x86汇编语言程序设计
2021/2/19 80x86汇编语言程序设计 【解】宏展开结果是: + MOV CX,5 + LEA BX,buf1 + XOR AX,AX + ??0000:ADD AX,[BX] + ADD BX,2 + LOOP ??0000 + MOV CX,7 + LEA BX,buf2 + XOR AX,AX + ??0001:ADD AX,[BX] + ADD BX,2 + LOOP ??0001