80x86汇编习题
题目描述:编写一个程序,新建一个文件:d:\abc.txt,从键盘输入文件的内容(不超过100个字符)
思路:
1,定义好文件名,记得末尾+0
2,定义好缓冲区
3,创建文件,成功的话,把AX的文件代号存到FH中,也要处理失败情况
4,准备A号功能缓冲区,用A号功能一次性接收
5,把缓冲区的内容写到文件里
6,关闭文件
DATAS SEGMENT
BUF DB 255,?,255 DUP(?)
FN DB 'abc001.txt',0
FH DW ?
ERR_MSG DB 'ERROR!','$'
SUC_MSG DB 'SUCCESS!','$'
DATAS ENDS
STACKS SEGMENT
DW 100H DUP(?)
TOP LABEL WORD
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,STACKS
MOV SS,AX
LEA SP,TOP ;初始化
LEA DX,FN ;地址
MOV CX,0 ;文件属性
MOV AH,3CH ;创建文件
INT 21H
JC ERRR ;创建失败,CF为1,跳转错误
MOV FH,AX ;创建成功返回AX是文件代号,放入HANDLE
LEA DX,BUF ;准备A号功能的缓冲区
MOV AH,0AH
INT 21H
XOR CH,CH
MOV CL,[BUF+1] ;BUF+1位置存储的是写入的字节数
LEA DX,BUF+2 ;BUF+2是字符串首
MOV BX,FH ;文件代号
MOV AH,40H ;写功能
INT 21H
JC ERRR ;错误的话CF为1
MOV BX,FH ;关闭文件
MOV AH,3EH
INT 21H
JNC EXIT ;CF为0,正常关闭就退出
ERRR:
LEA DX,ERR_MSG
MOV AH,9
INT 21H
EXIT:
MOV AH,4CH
INT 21H
CODES ENDS
END START