54 lines
802 B
NASM
54 lines
802 B
NASM
; 实验六-3: 宏嵌套调用 - 多个宏配合使用
|
|
; 功能: 定义多个宏,实现复杂的输出功能
|
|
|
|
DATAS SEGMENT
|
|
MSG DB 'Test$'
|
|
DATAS ENDS
|
|
|
|
STACKS SEGMENT
|
|
DB 64 DUP(?)
|
|
STACKS ENDS
|
|
|
|
CODES SEGMENT
|
|
ASSUME CS:CODES, DS:DATAS, SS:STACKS
|
|
|
|
; 宏定义:输出字符
|
|
PRINT_CHAR MACRO CHAR
|
|
MOV DL, CHAR
|
|
MOV AH, 02H
|
|
INT 21H
|
|
ENDM
|
|
|
|
; 宏定义:换行
|
|
NEWLINE MACRO
|
|
MOV DL, 0AH
|
|
MOV AH, 02H
|
|
INT 21H
|
|
MOV DL, 0DH
|
|
MOV AH, 02H
|
|
INT 21H
|
|
ENDM
|
|
|
|
; 宏定义:显示字符串
|
|
PRINT_STR MACRO STR
|
|
LEA DX, STR
|
|
MOV AH, 09H
|
|
INT 21H
|
|
ENDM
|
|
|
|
START:
|
|
MOV AX, DATAS
|
|
MOV DS, AX
|
|
|
|
PRINT_CHAR 'H'
|
|
PRINT_CHAR 'e'
|
|
PRINT_CHAR 'l'
|
|
PRINT_CHAR 'l'
|
|
PRINT_CHAR 'o'
|
|
NEWLINE
|
|
PRINT_STR MSG
|
|
|
|
MOV AH, 4CH
|
|
INT 21H
|
|
CODES ENDS
|
|
END START |