📄 filemacro.asm
字号:
;--------------------------------------------------------------------------------------------
;功能:保存寄存器AX,BX,CX,DX
PUSHREG MACRO
PUSH AX
PUSH BX
PUSH CX
PUSH DX
ENDM
;--------------------------------------------------------------------------------------------
;功能:恢复寄存器AX,BX,CX,DX
POPREG MACRO
POP DX
POP CX
POP BX
POP AX
ENDM
;--------------------------------------------------------------------------------------------
;功能:清屏
;调用参数:无
;返回参数:无
CLRSCR MACRO
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AX,0600H
MOV BH,0AH
XOR CX,CX
MOV DX,184FH
INT 10H
POP DX
POP CX
POP BX
POP AX
ENDM
;--------------------------------------------------------------------------------------------
;功能:置光标
;调用参数:DH:DL 行,列
;返回参数:无
CURSOR MACRO
PUSH AX
PUSH BX
MOV AH,2
XOR BH,BH
INT 10H
POP BX
POP AX
ENDM
;--------------------------------------------------------------------------------------------
;功能:在指定位置显示字符串
;调用参数:ROW/COL:光标行/列号,S:字符串变量(以$结束)
;返回参数:无
PUTS MACRO ROW,COL,S
PUSH DX
PUSH AX
MOV DH,ROW
MOV DL,COL
CURSOR
MOV AH,9
LEA DX,S
INT 21H
POP AX
POP DX
ENDM
;--------------------------------------------------------------------------------------------
;功能:创建文件
;调用参数:PATHNAME:文件说明
;返回参数:AL = 1成功,FILEHANDLE = 文件句柄;AL = 0失败
NEWFILE MACRO PATHNAME,FILEHANDLE,N_ERR
LOCAL N_ERROR,N_QUIT
PUSH BX
PUSH CX
PUSH DX
MOV AH,3CH
MOV CX,0
LEA DX,PATHNAME
INT 21H
JC N_ERROR ;建立文件错转
MOV FILEHANDLE,AX ;保存文件标记
MOV AL,1
JMP N_QUIT
N_ERROR:
PUTS 15,1,N_ERR ;错误处理
MOV AL,0
N_QUIT:
POP DX
POP CX
POP BX
ENDM
;--------------------------------------------------------------------------------------------
;功能:打开文件
;调用参数:PATHNAME:文件说明
;返回参数:AL = 1成功,FILEHANDLE = 文件句柄;AL = 0失败
OPENFILE MACRO PATHNAME,FILEHANDLE,O_ERR
LOCAL O_ERROR,O_QUIT
PUSH DX
MOV AH,3DH
LEA DX,PATHNAME
MOV AL,2
INT 21H
JC O_ERROR
MOV FILEHANDLE,AX
MOV AL,1
JMP O_QUIT
O_ERROR:
PUTS 16,1,O_ERR
MOV AL,0
O_QUIT:
POP DX
ENDM
;--------------------------------------------------------------------------------------------
;功能:写文件
;调用参数:LENGTH:写字节数,BUF:缓冲区首址,FILEHANDLE:文件句柄
;返回参数:AL = 1成功,AL = 0失败
WRITEFILE MACRO LENGTH,BUF,FILEHANDLE,W_ERR
LOCAL W_ERROR,W_QUIT
PUSH BX
PUSH CX
PUSH DX
MOV BX,FILEHANDLE
MOV CX,LENGTH
MOV AH,40H
LEA DX,BUF
INT 21H
JC W_ERROR
MOV AL,1
JMP W_QUIT
W_ERROR:
PUTS 16,1,W_ERR
MOV AL,0
W_QUIT:
POP DX
POP CX
POP BX
CURSOR
ENDM
;--------------------------------------------------------------------------------------------
;功能:读文件
;调用参数:LENGTH:写字节数,BUF:缓冲区首址,FILEHANDLE:文件句柄
;返回参数:AL = 1成功,AL = 0失败
READFILE MACRO LENGTH,BUF,FILEHANDLE,R_ERR
LOCAL R_ERROR,R_QUIT
PUSH BX
PUSH CX
PUSH DX
LEA DX,BUF
MOV AH,3FH
MOV BX,FILEHANDLE
MOV CX,LENGTH
INT 21H
JC R_ERROR
MOV AL,1
JMP R_QUIT
R_ERROR:
PUTS 16,1,R_ERR
MOV AL,0
R_QUIT:
POP DX
POP CX
POP BX
ENDM
;--------------------------------------------------------------------------------------------
;功能:关闭文件
;调用参数:FILEHANDLE:文件句柄
;返回参数:AL = 1成功,AL = 0失败
CLOSEFILE MACRO FILEHANDLE,C_ERR
LOCAL C_ERROR,C_QUIT
PUSH BX
PUSH CX
PUSH DX
MOV AH,3EH
MOV BX,FILEHANDLE
INT 21H
JC C_ERROR
MOV AL,1
JMP C_QUIT
C_ERROR:
PUTS 16,1,C_ERR
MOV AL,0
C_QUIT:
POP DX
POP CX
POP BX
ENDM
;--------------------------------------------------------------------------------------------
;功能:给DS赋值
;调用参数:数据段名:DATA
;返回参数:无
LOADDS MACRO DATA
MOV AX,DATA
MOV DS,AX
ENDM
;--------------------------------------------------------------------------------------------
;功能:返回DOS
;调用参数:无
;返回参数:无
RETURN MACRO
MOV AX,4C00H
INT 21H
ENDM
;--------------------------------------------------------------------------------------------
;功能:等待按任意键退出
;调用参数:无
;返回参数:无
WAIT_ANY MACRO
MOV AH,0 ;按任意键.
INT 16H
ENDM
;--------------------------------------------------------------------------------------------
;功能:等待输入一个[无回显]字符
;调用参数:无
;返回参数:无
WAIT_CH MACRO
MOV AH,7 ;等待输入一个[无回显]字符
INT 21H
ENDM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -