【任务】
编程序,将一段文字保存到文件中
【参考解答】(未考虑友好的界面,可在此基础上拓展)
assume cs:code, ds:data; ss:stack
stack segment
db 100H dup (?)
stack ends
data segment
filename db 'a.txt',0 ;文件名
text db 'I am so happy!', 10,13
db 'I can write message to a file!', 10, 13
db 'oh, so sweat.' ;要写入的文字
handle dw ? ;用于保存句柄
data ends
code segment
start:
mov ax, data
mov ds, ax
;创建文件——用21h中断的3ch功能(查手册,看怎么用)
mov cx, 0 ;文件属性
lea dx, filename
mov ah, 3ch
int 21h
;利用出口参数判断是否成功,若成功,则保存句柄(1个标识文件的16位数)
jc stop ;CF=1则出错退出
mov handle, ax ;保存文件句柄
;向文件中写入文本——用21h中断的40h功能
mov bx, handle ;文件句柄
mov cx, offset handle - offset text
lea dx, text
mov ah, 40h
int 21h
;利用出口参数判断是否成功,失败则退出
jc stop
;关闭文件——用21h中断的3eh功能
mov bx, handle
mov ah, 3eh
int 21h
stop:
mov ah,4ch
int 21h
code ends
end start
可以到程序所在的文件夹中,查看刚刚诞生的文件宝宝了!