汇编语言程序设计 - 新建一个文件:d:\abc.txt,从键盘输入文件的内容(不超过100个字符)

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值