⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filemacro.asm

📁 汇编语言编写的成绩管理系统。使用RadASM开发环境建立的工程
💻 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 + -