55 lines
1.1 KiB
NASM
55 lines
1.1 KiB
NASM
; 实验八-1: 文件创建程序
|
|
; 功能: 使用DOS功能号3CH创建新文件
|
|
; 说明: AL=00H表示普通文件属性
|
|
|
|
DATAS SEGMENT
|
|
FILENAME DB 'testfile.txt', 0 ; 要创建的文件名
|
|
HANDLE DW ? ; 文件句柄
|
|
ERR_MSG DB 'File creation error!', 0DH, 0AH, '$'
|
|
OK_MSG DB 'File created successfully!', 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
|
|
|
|
; 创建文件
|
|
; AH = 3CH (创建文件功能号)
|
|
; AL = 00H (普通文件属性)
|
|
; DS:DX = 文件名地址
|
|
LEA DX, FILENAME
|
|
MOV AH, 3CH
|
|
MOV AL, 00H
|
|
INT 21H
|
|
|
|
; 检查是否成功 (CF=0表示成功)
|
|
JNC CREATE_SUCCESS
|
|
|
|
; 创建失败,显示错误信息
|
|
LEA DX, ERR_MSG
|
|
MOV AH, 09H
|
|
INT 21H
|
|
JMP PROGRAM_END
|
|
|
|
CREATE_SUCCESS:
|
|
; 保存文件句柄
|
|
MOV HANDLE, AX
|
|
|
|
; 显示成功信息
|
|
LEA DX, OK_MSG
|
|
MOV AH, 09H
|
|
INT 21H
|
|
|
|
PROGRAM_END:
|
|
MOV AH, 4CH
|
|
INT 21H
|
|
|
|
CODES ENDS
|
|
END START |