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

📄 fileio.mac

📁 Student学生成绩管理系统是一个使用MASM宏汇编语言开发的试验性项目。它实现了学生学号、姓名、三门课程成绩的录入、修改、删除以及总成绩计算、按成绩排序等功能
💻 MAC
字号:
; --------------------------------------------------------------------
; 文件I/O宏指令库 - FILE_IO.MAC
; --------------------------------------------------------------------

; 创建文件
; 调用:NEWFILE 文件说明, 文件句柄
; 返回:AL - 返回1表示成功,0表示失败
;       FILEHANDLE - 文件句柄
NEWFILE MACRO   PATHNAM, FILEHANDLE 
        LOCAL   N_ERROR, N_QUIT
        PUSH    BX
        PUSH    CX
        PUSH    DX
        MOV     AH, 3CH
        MOV     CX, 0
        LEA     DX, PATHNAM
        INT     21H
        JC      N_ERROR
        MOV     FILEHANDLE, AX
        MOV     AL, 1
        JMP     N_QUIT
N_ERROR:MOV     AL, 0	
N_QUIT: POP     DX
        POP     CX
        POP     BX
        ENDM

; 打开文件
; 调用:OPENFILE 文件说明, 文件句柄
; 返回:AL - 返回1表示成功,0表示失败
;       FILEHANDLE - 文件句柄
OPENFILE        MACRO   PNAME, FILEHANDLE
                LOCAL   O_ERROR, O_QUIT
                PUSH    DX
                MOV     AH, 3DH
                LEA     DX, PNAME
                MOV     AL, 2
                INT     21H
                JC      O_ERROR
                MOV     FILEHANDLE, AX
                MOV     AL, 1
                JMP     O_QUIT
O_ERROR:        MOV     AL, 0
O_QUIT:         POP     DX
                ENDM

; 写入文件
; 调用:WRITEFILE 写字节数, 缓冲区首址, 文件句柄
;       DX - 缓冲区首地址
; 返回:AL - 返回1表示成功,0表示失败,2表示写入0字节
WRITEFILE       MACRO   LENG, FILEHANDLE
                LOCAL   W_ERROR, W_QUIT, W_END
                PUSH    BX
                PUSH    CX
                MOV     BX, FILEHANDLE
                MOV     CX, LENG
                MOV     AH, 40H
                INT     21H
                JC      W_ERROR
		CMP     AX, 0
                JE      W_END
                MOV     AL, 1
                JMP     W_QUIT
W_END:          MOV     AL, 2
                JMP     W_QUIT
W_ERROR:        MOV     AL, 0
W_QUIT:         POP     CX
                POP     BX
                ENDM

; 读文件
; 调用:READFILE 读字节数, 文件句柄
;       DX - 缓冲区首地址
; 返回:AL - 返回1表示成功,0表示失败,2表示读到文件尾
READFILE        MACRO   LENG, FILEHANDLE
                LOCAL   R_ERROR, R_QUIT, R_END
                PUSH    BX
                PUSH    CX
                MOV     AH, 3FH
                MOV     BX, FILEHANDLE
                MOV     CX, LENG
                INT     21H
                JC      R_ERROR
		CMP     AX, 0
                JE      R_END
                MOV     AL, 1
                JMP     R_QUIT
R_END:          MOV     AL, 2
                JMP     R_QUIT
R_ERROR:        MOV     AL, 0
R_QUIT:         POP     CX
                POP     BX
                ENDM

; 关闭文件
; 调用:CLOSEFILE 文件句柄
; 返回:AL - 返回1表示成功,0表示失败
CLOSEFILE       MACRO   FILEHANDLE
                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:        MOV     AL, 0
C_QUIT:         POP     DX
                POP     CX
                POP     BX
                ENDM

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -