- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
磁盘文件
本章将讨论磁盘数据的组织,如何调用DOS和BIOS的中断服务程序访问磁盘等。在这里说明DOS的INT 21H功能调用中关于磁盘文件操作分为两组,一组是使用文件控制块(FCB)对文件进行操作,占用0F~23H子功能号,这是一种旧式文件操作方式,这里不予介绍;另一组是使用文件号方式,这是和UNIX操作系统类似的文件操作方式,本章将介绍这种文件操作方式。
§8..1 磁盘数据组织
磁道、柱面和扇区
磁盘分为软盘和硬盘,软盘是在一种软塑料基片上涂有磁性材料,硬盘则是在刚性材料上图一层磁性材料。无论软盘还是硬盘都分为磁道和扇区,图811展示了磁盘表面上的磁道和扇区的结构和组织情况。
图811 磁盘磁道和扇区
一张磁盘划分为多个磁道,每个磁道有划分若干的扇区。越靠近圆心的磁道的周长越小,但是每个磁道划分的扇区数是相同的。一张磁盘划分为多少磁道和扇区不同类型的磁盘有所不同。
硬盘一般由多个盘片组成,每个盘片的同一位置的磁道组成一个柱面。
二、磁盘数据组织
一张磁盘被分成四个区域,它们分别是引导扇区、文件分配表(FAT)、根目录和数据存储区。
1.引导扇区
磁盘上的第一个扇区为引导扇区。引导扇区内包含了一个称为引导纪录(Boot Record)的程序,当启动计算机时,计算机自检后执行INT 19H服务程序,将引导纪录装入内存,然后执行该程序。引导程序的执行结果是将DOS系统文件IO.SYS 、MSDOS.SYS和COMMAND.COM装入内存,然后执行COMMAND.COM程序,此时计算机处于DOS命令程序控制之下。
2.文件分配表(FAT)
磁盘存储数据以簇(cluster)为单位分配磁盘空间,一个簇包含一个或几个扇区。.对于软盘一个簇一般只有一个扇区,硬盘一个簇往往有4个、8个扇区等。如果一个簇有4个扇区,则一个簇包含2K字节,即使一个文件的实际长度小于2K,在磁盘上也要占用2K字节空间。
一个簇有一顺序编号,称为簇号。当将文件存入磁盘时,根据文件大小给文件分配一个或几个簇,所以磁盘空间是以簇为单位分配的。文件分配表记录磁盘簇的分配情况,它由若干项组成,每一项和一个簇相对应,占用16位或32位。
簇0 簇1 簇2 簇3 … 簇n 指向目录区 指向数据区 分配表的某一项值为0000H时,表示该簇为空簇,为FFF7H时,表示该簇是一个坏簇,如果值为0001H~0FFFEH表示该簇已分配。当一个文件占用多个簇时,从文件所分配的第一个簇起,每一项存放的是文件所分配的下一个簇号。
16位文件分配表能存放的最大值是0FFFEH,所以使用16位文件分配表磁盘最多只能有0FFFEH=1024*64个簇,假如一个簇有12个扇区,则磁盘最大空间为512*8*1024*64=384M。所以对于大容量硬盘应使用32位文件分配表。
文件分配表在磁盘上存有两份。
3.根目录区
根目录区存放磁盘文件根目录下的文件或子目录有关信息,根目录的每一项占用32字节,其含义如下:
0~7H 文件名
8~0AH 文件扩展名
0BH 文件属性
0CH~15H 未用
16H~17H 时间
18H~19H 日期
1AH~1BH 文件开始簇号
1CH~1EH 文件长度
4.数据区
存放文件内容。
§8..2 文件操作
一、文件操作的DOS系统功能调用
文件操作可以调用DOS 的INT 21H系统功能。DOS操作系统文件操作有两种方式:使用文件控制块方式和使用文件号存取方式。使用文件控制块方式需要建立一个文件控制块,然后才能对文件进行操作。文件控制块方式最大的缺点是不支持树形目录结构,因此在后期版本增加了使用文件号的存取方式。所谓文件号存取方式,就是DOS操作系统为每一个使用中的文件分配一个16位的文件号,以后就使用文件号进行操作。
DOS系统文件操作功能:
3CH 建立文件
子功能 调用参数 返回参数 3CH 建立文件 DS=文件名的段基址
DX=文件名的偏移地址
CX=文件属性 CF=0操作成功
AX=文件号
CF=1操作出错
AX=错误代码 3DH 打开文件 DS=文件名的段基址
DX=文件名的偏移地址
AL=存取代码 CF=0操作成功
AX=文件号
CF=1操作出错
AX=错误代码 3EH 关闭文件 BX =文件号 CF=0操作成功
CF=1操作出错
AX=错误代码 3FH 读文件 DS=数据缓冲区的段基址
DX=数据缓冲区的偏移地址
BX =文件号
CX=读取字节数 CF=0操作成功
AX=实际读出字节数
AX=0文件结束
CF=1读出错
AX=错误代码 40H 写文件 DS=数据缓冲区的段基址
DX=数据缓
文档评论(0)