没有合适的资源?快使用搜索试试~ 我知道了~
汇编语言课程设计 文件分页显示程序的设计与实现
需积分: 14 13 下载量 34 浏览量
2010-01-22
16:25:23
上传
评论 2
收藏 137KB DOCX 举报
温馨提示
试读
17页
汇编语言课程设计 文件分页显示程序的设计与实现 步骤清晰明确 代码易懂
资源推荐
资源详情
资源评论
文件分页显示程序的设计与实现
1.问题描述(内容及要求)
理解磁盘的结构和存储原理。掌握文件代号方式下 MS-DOS 对磁盘文件的管理方法,
掌握文件代号方式下与磁盘文件操作相关的 DOS 功能调用。具体的设计任务及要求:
1)出现提示后输入要显示的磁盘文件的路径名;
2)显示一页后暂停,等待用户命令:
·用户输入“空格”,继续显示下一页;
·用户输入“P”,允许用户改变每页的行数。每页的缺省行数使 24,有效的每页行数
应在 1~24 之间;
·用户输入“D”,将刚才显示的一页从文件中删除;
·用户输入“C”,将刚才显示的一页拷贝到指定的磁盘文件中。
3)文件显示完后显示提示信息。
4)程序应具有清晰的用户界面。建议将屏幕的 0~23 行设置为文件显示区, 24 行用
于显示提示信息和接受用户命令。
2.设计中使用的关键技术和方法
2.1 关键知识点
2.1.1 文件代号存取方式
武汉理工大学《汇编语言程序设计》课程设计书
在 DOS 2.0 以上的版本中,为了支持层次结构,引用了树形结构目录,因此相应增
加了一个新的存取方式即文件代号存取方式(le handles access)。这种方式将有关文
件的完整的路径名(path name),一旦文件的路径名被送入操作系统,就被赋予一个简
单的文件代号(le handle),这个文件代号是一个 16 位的数。以后对该文件进行读写时,
就用这个文件代号去查找相应的文件。对于每一个打开的文件,DOS 还为其管理一个读写
指针(read/write pointer),读写指针总是指向下一个要存取的文件的字节,这个读写指
针可以引动到文件的任意位置,从而能满足随机存取的要求。
DOS 2.0 提供的有关代号式文件管理功能都包括在扩充 DOS 功能调用中。常用的部分
功能调用有:
AH
功能 调用参数 返回参数
3CH
建文件 DS=ASCIZ 串的段地址
DX=ASCIZ 串的偏移地址
CX=文件属性
CF=0 操作成功
AX=文件代号
CF=1 操作出错
AX=错误代码
3DH
打开文件 DS=ASCIZ 串的段地址
DX=ASCIZ 串的偏移地址
AL=存取代码
CF=0 操作成功
AX=文件代号
CF=1 操作出错
AX=错误代码
3EH
关闭文件 BX=文件代号 CF=0 操作成功
CF=1 出现错误
AX=错误代码
2 / 17
武汉理工大学《汇编语言程序设计》课程设计书
3FH
读文件或设备 DS=数据缓冲区段地址
DX=数据缓冲区偏移地址
BX=文件代号
CX=读取的字节数
CF=0 读成功
AX=实际读入的字节数
AX=0 文件结束
CF=1 读出错
AX=错误代码
40H
写文件或设备 DS=数据缓冲区段地址
DX=数据缓冲区偏移地址
BX=文件代号
CX=写入的字节数
CF=0 写成功
AX=实际读入的字节数
CF=1 读出错
AX=错误代码
42H
移动文件指针 CX=所需字节的偏移地址
(高位)
DX=所需字节的偏移地址
(低位)
AL=方式码
BX=文件代号
CF=0 操作成功
DX:AX=新指针位置
CF=1 操作失败
AX=错误代码
43H
检验或改变文
件属性
AL=0 检验文件属性
AL=1 置文件属性
CX=新属性
DS=ASCIZ 串的段地址
DX=ASCIZ 串的偏移地址
CF=0 操作成功
AL=0
CX=属性
CF=1 操作失败
AX=错误代码
当使用扩展功能处理磁盘文件时,首先要告诉 DOS 一个 ASCIZ 串的地址。这 个 ASCIZ
3 / 17
武汉理工大学《汇编语言程序设计》课程设计书
串包括文件的路径名和一个全 0 的字节。文件名说明文件的位置,包括磁盘驱动器、目录路
径和文件名。
2.1.2 写磁盘文件
写一个新文件或用同一个文件名重写一个旧文件时,首先要建立文件并赋给它一个属性 ,
如果 DOS 发现要建立的文件已经存在,那么原来的文件就破坏。建立文件的功能调用是
3CH,调用该功能时,在 DX 中装入 ASCIZ 串的地址,在 CX 中装入文件的属性。当写入文
件操作完成后,必须用 DOS 功能调用 3EH 来关闭文件,以确保操作系统将文件记录在磁盘
上,这个操作只要求在 BX 中放入文件代号。
2.1.3 读磁盘文件
调用读文件或设备功能(3FH),要求把文件打开取得文件代号,然后按照指定的字节
数从磁盘中把文件读出,送入内存中预先定义好的数据缓冲区。如果读入的字节数大于缓冲
区空间,那么,这些多余的数据将送到程序所占空间上的存储器中。打开文件操作(3DH)
要检查文件名是否合法,文件是否有效。文件名是一个 ASCIZ 串,其地址装入 DX 寄存器,
并在 AL 中设置存取代码。一个文件分几次读取,取决于文件的大小和输入缓冲区的空间。
如果文件很大,程序中不能设置如此大的缓冲区,则必须分几次重复调用读功能,直到整个
文件结束。
2.1.4 移动读写指针
利用文件代号存取文件是以字节为存取单位的,一个文件被看做由许多字节组成,每次
读写的字节数可任意指定,但一般还是为输入输出缓冲区的大小所限制。所以一个比较大的
文件总是要分几次读写,每次读写的字节称为记录。另外像名单,零件表,账目等,每项具
有同类型数据和同样格式的文件,按记录来进行处理更为方便。那么,在读写文件时,每次
读写的记录是如何拼接起来的呢?原来是操作系统为文件波村了一个称为读写指针的变量,
4 / 17
剩余16页未读,继续阅读
资源评论
hc971655838
- 粉丝: 0
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功