汇编中文件的读写

汇编中文件的读写

ID:18285432

大小:188.00 KB

页数:15页

时间:2018-09-16

汇编中文件的读写_第1页
汇编中文件的读写_第2页
汇编中文件的读写_第3页
汇编中文件的读写_第4页
汇编中文件的读写_第5页
资源描述:

《汇编中文件的读写》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验七文件的读写汇编语言实验报告(七)班级:01540802班姓名:南征学号:20080705信息与电子学院14实验七文件的读写实验七文件的读写一、实验目的理解文件标记的概念,掌握利用文件标记读写文件的方法,学习使用文件指针读取文件。二、实验要点磁盘文件的读写有两种方法,一种称为文件控制块;另一种方法称为文件标记,前者在读写文件时首先要设定文件控制块,知名文件所在的当前磁盘的驱动器、文件名,同时还要制定所读写的文件所处的当前块号、当前记录号、记录长度等参量,此外还需要设置磁盘传输区。在读磁盘数据文件时,应先将磁盘上有关数据读入磁盘传输区,然后再传送至目

2、的的内存区。在写磁盘数据文件时,要写入磁盘文件的数据也必须先送入磁盘传输区,然后再执行写操作。此种方法的缺点是不支持树形目录结构。目前常用的方法是利用文件标记读写文件,无论用什么方法读写文件,都要解决以下几个问题:A)用户程序要告诉操作系统将要存取那个文件。B)无论是从磁盘独处的数据,还是要写入磁盘的数据都必须存放在一个制定的内存缓冲区中,这个内存缓冲区叫数据传输区(DTA)。C)在读一个磁盘文件之前,要先打开文件,然后才能将文件内容读入内存。而在读写一个文件之前,要先建立一个新文件名,再将内存中的内容写入磁盘。D)在存取文件之后,特别是在写入文件之后

3、,务必将此文件关闭。利用文件标记读写文件的主要特点是:通过建立文件、打开文件,将磁盘路径名、文件名转换为文件标记或件号,在以后读写文件的操作中均要与文件标记打交道。在一个系统中,可同时打开多个文件,并配置相应的文件标记。在利用文件标记读写磁盘文件是要掌握以下几个要点:1)使用建立文件、打开文件系统功能之前,都必须将DS:DX指向驱动器名、路径名、文件名和以数值零为结尾的ASCIIZ字符串的首地址。2)对于一个新文件要用3CH系统功能调用,建立文件。(如果不是新文件,此步骤可略)3)已存在的文件则利用3DH系统功能调用,打开此文件。4)如果文件建立、打开

4、成功,则CF=0,并且在AX寄存器中返回文件标记。5)在建立、打开文件成功之后,即可对文件进行读、写操作。如果要对文件进行读操作,则在打开文件之后,用3FH系统功能调用将文件读入数据缓冲区,调用前的入口参数是:文件标记存入BX,读入文件的字节数放入CX,数据缓冲区的起始地址存入DS:DX。调用完毕,AX返回实际读入的字节数。6)读入数据缓冲区的文件,可利用40H系统功能调用将文件写入指定的磁盘。调用入口参数是:文件标记存入BX,要写入的字节数放入CX,DS:DX指向要写入数据缓冲区的首地址。调用结束后AX返回实际写入的字节数。如果AX

5、空间已满,但系统不提示错误信息。7)14实验七文件的读写在读、写文件完成后,要用3EH系统功能调用关闭,释放原占有的文件号,并将缓冲区的数据最终写入磁盘。特别是对于写磁盘文件操作,在写入之后,必须要关闭文件,否则该数据文件将会丢失。此外,特别要注意的是,在一个系统中不能同时建立两个以上的新文件。1)在文件建立或打开后,文件指针的初始位置是指向文件首偏移为‘0’处,如果不想从文件首开始读、写文件,则可用系统功能调用42H移动文件指针的方法实现。调用前,将文件标记存入BX,所需移动偏移量的字节数(CX为高位部分)存放于CX:DX;调用后在DX:AX中返回读

6、写指针移动后的位置。移动的方式有三种:AL=0指针从文件头移动到由CX:DX所指定的偏移量处;AL=1指针从当前位置移动到由CX:DX所指定的偏移量处;AL=2指针从文件尾移动到由CX:DX所指定的偏移量处;本实验通过第1题,使同学掌握利用文件标记的方法,读写一个文件;第2题在掌握文件标记的使用之后,理解利用文件标记及文件指针将两个文件合并成一个文件的过程及技术要领。第3题进一步理解文件指针的三种移动方式的使用方法。一、实验任务及步骤1.用文件标记读写文件编程实现,首先从键盘输入包括驱动器名、路径名、文件名及0的ASCIIZ字符串(即为指定路径下的一个

7、文件),然后把这个文件打开并读入到内存数据缓冲区50000H(对应的逻辑地址为5000:0000)处,再换个文件名重新写入磁盘。代码如下:DATASEGMENTFILE1DB40DB?DB40DUP(0)FILE2DB40DB?DB40DUP(0)MSG1DB'INPUTSOURCEFILE:$'MSG2DB'INPUTNEWNAME:$'ENTERDB0DH,0AH,'$'BUFDB100DUP(0)STACKSEGMENTDB100DUP(?)STACKENDSDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:

8、DATA,SS:STACKMAINPROCFARMOVAX,DATAMOVDS,AX14实验七

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。