47 lines
688 B
NASM
47 lines
688 B
NASM
; 实验六-4: 宏与子程序比较
|
|
; 功能: 对比宏与子程序的区别和各自适用场景
|
|
|
|
DATAS SEGMENT
|
|
MSG1 DB 'Macro Test$'
|
|
MSG2 DB 'Subroutine Test$'
|
|
DATAS ENDS
|
|
|
|
STACKS SEGMENT
|
|
DB 64 DUP(?)
|
|
STACKS ENDS
|
|
|
|
CODES SEGMENT
|
|
ASSUME CS:CODES, DS:DATAS, SS:STACKS
|
|
|
|
; 宏定义
|
|
PRINT_STRING MACRO STR
|
|
LEA DX, STR
|
|
MOV AH, 09H
|
|
INT 21H
|
|
ENDM
|
|
|
|
; 子程序定义
|
|
PRINT_PROC PROC
|
|
LEA DX, MSG2
|
|
MOV AH, 09H
|
|
INT 21H
|
|
RET
|
|
PRINT_PROC ENDP
|
|
|
|
START:
|
|
MOV AX, DATAS
|
|
MOV DS, AX
|
|
|
|
; 使用宏
|
|
PRINT_STRING MSG1
|
|
MOV DL, 0AH
|
|
MOV AH, 02H
|
|
INT 21H
|
|
|
|
; 使用子程序
|
|
CALL PRINT_PROC
|
|
|
|
MOV AH, 4CH
|
|
INT 21H
|
|
CODES ENDS
|
|
END START |