汇编语言程序设计 - 将当前目录下文件 FIE10.TXT 的所有小写字母改为大写字母,然后拷贝到当前目录文件 FILE20.TXT。

80x86汇编题目

题目描述:编写一个程序,将当前目录下文件 FIE10.TXT 的所有小写字母改为大写字母,然后拷贝到当前目录文件 FILE20.TXT。

思路:

1,分别打开两个文件,保存文件句柄

2,读取FILE10文件的一个字节到BUF内存中。

3,判断是否为小写。非小写字母直接写入到FILE20文件中,小写字母转换后写入到FILE20文件中

4,全部扫描之后,关闭两个文件。

5,在文件操作时,遇到错误会返回CF标志位为1,每次文件操作都应该带上JC ERR,进行对应的错误处理。本程序为了方便,所有都跳转到了ERR,实际上要分开错误类型处理。

DATAS SEGMENT
    FN1 DB 'FILE10.TXT',0
    FH1 DW ?
    FN2 DB 'FILE20.TXT',0
    FH2 DW ?
    BUFF DB 10 DUP(?)
    ERRSTR DB 'SOMETHING ERROR!','$'
DATAS ENDS

STACKS SEGMENT
    DW 30H DUP(0)
    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			;初始化
    
OPEN:
	MOV AH,3CH
	MOV CX,0
    LEA DX,FN2
    INT 21H
    JC ERR
    MOV FH2,AX

    MOV AH,3DH
    MOV AL,0
    LEA DX,FN1
    INT 21H
    JC ERR
    MOV FH1,AX
    
READ:
	MOV AH,3FH
	MOV BX,FH1
	MOV CX,1
	LEA DX,BUFF
	INT 21H
	JC ERR
	CMP AX,0
	JE CLSF
	
CHANGE:
	MOV AL,[BUFF]
	CMP AL,61H
	JB WRITE
	CMP AL,7AH
	JA WRITE
	SUB AL,20H
	MOV [BUFF],AL
	
WRITE:
	MOV AH,40H
	MOV BX,FH2
	MOV CX,1
	INT 21H
	JMP READ
	
CLSF:
	MOV AH,3EH
	MOV BX,FH1
	INT 21H
	JC ERR
	MOV AH,3EH
	MOV BX,FH2
	INT 21H
	JC ERR
	JMP EXIT
	
ERR:
	LEA DX,ERRSTR
	MOV AH,9
	INT 21H
	
EXIT:    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值