62 lines
1.2 KiB
NASM
62 lines
1.2 KiB
NASM
; 实验八-4: 文件删除程序
|
||
; 功能: 使用DOS功能号41H删除文件
|
||
; 说明: 警告:此操作不可恢复!
|
||
|
||
DATAS SEGMENT
|
||
FILENAME DB 'testfile.txt', 0 ; 要删除的文件名
|
||
ERR_MSG DB 'File delete error!', 0DH, 0AH, '$'
|
||
OK_MSG DB 'File deleted successfully!', 0DH, 0AH, '$'
|
||
NO_FILE_MSG DB 'File does not exist!', 0DH, 0AH, '$'
|
||
DATAS ENDS
|
||
|
||
STACKS SEGMENT
|
||
DB 64 DUP(?)
|
||
STACKS ENDS
|
||
|
||
CODES SEGMENT
|
||
ASSUME CS:CODES, DS:DATAS, SS:STACKS
|
||
|
||
START:
|
||
MOV AX, DATAS
|
||
MOV DS, AX
|
||
|
||
; 删除文件 (功能号41H)
|
||
; AH = 41H (删除文件功能号)
|
||
; DS:DX = 文件名地址
|
||
; AL必须为0
|
||
LEA DX, FILENAME
|
||
MOV AH, 41H
|
||
MOV AL, 00H
|
||
INT 21H
|
||
|
||
; 检查删除是否成功
|
||
; 注意:如果文件不存在,AX会返回错误
|
||
JNC DELETE_SUCCESS
|
||
|
||
; 检查是否是"文件未找到"错误 (错误码2)
|
||
CMP AX, 02H
|
||
JE FILE_NOT_FOUND
|
||
|
||
; 其他错误
|
||
LEA DX, ERR_MSG
|
||
MOV AH, 09H
|
||
INT 21H
|
||
JMP PROGRAM_END
|
||
|
||
FILE_NOT_FOUND:
|
||
LEA DX, NO_FILE_MSG
|
||
MOV AH, 09H
|
||
INT 21H
|
||
JMP PROGRAM_END
|
||
|
||
DELETE_SUCCESS:
|
||
LEA DX, OK_MSG
|
||
MOV AH, 09H
|
||
INT 21H
|
||
|
||
PROGRAM_END:
|
||
MOV AH, 4CH
|
||
INT 21H
|
||
|
||
CODES ENDS
|
||
END START |