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

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

时间:2024-06-19 12:58:54浏览次数:13  
标签:文件 ERR 当前目录 INT AH MOV AX TXT 21H

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

标签:文件,ERR,当前目录,INT,AH,MOV,AX,TXT,21H
From: https://blog.csdn.net/m0_60740070/article/details/139773745

相关文章

  • C/C++ 操作文件常用的函数
    C语言中操作文件常用的函数包括但不限于以下几种:打开和关闭文件fopen(constchar*path,constchar*mode):用于打开一个文件,返回一个指向FILE结构体的指针,path是文件路径,mode定义了文件的打开模式(如读、写、追加等)。fclose(FILE*stream):关闭由fopen()打开的文件,并刷新缓......
  • C++数据格式化2 - 将文件大小转换为人类易读的格式
    1.关键词2.strfmt.h3.strfmt.cpp4.测试代码5.运行结果6.源码地址1.关键词C++数据格式化字符串处理std::string文件大小跨平台2.strfmt.h#pragmaonce#include<string>#include<cstdint>#include<sstream>#include<iomanip>namespacecutl{......
  • Django框架入门必会三板斧,Django静态文件 static,Django有两种静态文件, Django框架
    ⅠDjango框架入门必会三板斧【一】Django项目如何添加新功能启动django项目之后如何添加更多的功能回想自己编写的web框架如果要添加功能就去urls.py和views.py【1】添加URL映射在项目的urls.py文件中,通过导入相应的应用(app)及其视图函数,并使用path()或include()......
  • python文件操作、文件操作、读写文件、写模式
    with读取文件数据内容withopen(filepath,mode,encoding)asfile:#具体操作,例如:print(file.read())#查看文件所有的内容。with:Python中的一个上下文管理器,用于简化资源的管理和释放。它可以用于任意需要进行资源分配和释放的情境,比如文件操作、数据库连......
  • Dbeaver执行外部SQL脚本文件创建数据库、建表导入数据等
    Dbeaver执行外部SQL脚本文件创建数据库、建表导入数据等点击项目浏览器右键点击选中,然后选择sql文件右键点击连接地址,选中【工具】,选中【创建新任务】填写信息,选中【执行SQL脚本】,然后【下一步】选中脚本文件点击确定选中数据库的连接地址,如果自动关联就无......
  • 解决 npm或pnpm : 无法加载文件
    解决npm或pnpm:无法加载文件C:\Users\hp\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本VSCode写入pnpmdev等命令的时候PSD:\GuangFu\pv_mes_web>pnpmdevpnpm:无法加载文件C:\Users\Eleven_tu\AppData\Roaming\npm\pnpm.ps1。未对文件C:\Users\Eleven_t......
  • 文件处理
    request.get("/operate-benchmarking/benchmarking/getReportTb2",{params:{reportName:reportName,},//responseType:"blob",}).then((res)=>{console.log(res.data);/......
  • 文件内容比较
    造冰箱的大熊猫@cnblogs2024/6/181、文本文件推荐使用Meld软件Meld为开源软件,支持Linux和Windows,以并列窗口的形式显示两个或三个文件的内容差异,能够选择文件编码格式(比如GB2312或UTF-8)。非常好用,个人强烈推荐  2、二进制文件1)Linux下可以使用命令行工具diff,参见之前写......
  • 将sonaruqbe中配置所有项目的阻断严重级别的违规导出cvs文件中,对TOP问题形成解决方案
    1.遇到问题1-1.导出cvs文件乱码,解决办法:通过设置pycharm的文件编码为UTF-81-2.sonarqube提供的API接口,默认只展示第一页的100条数据,解决办法:经过测试,API接口每页最多展示500条数据,只支持20页展示,所以要对URL加参数细化结果,再通过翻页获取全部的数据,具体实现如下所示2.最终生......
  • 如何提取PDF文件的其中几页?
    如何提取pdf中的页面?在使用PDF文件时,如果我们只想要PDF中的几页,保存整个PDF是完全没有必要的,那么应该怎么做呢?其实只要提取PDF页面就可以了,那么提取操作具体应该怎么做呢?下面这篇文章肯定可以帮你解决疑惑!第一个方法在线拆分,不需要下载安装超方便。smallpdf中文版在线拆分操作方......