社区
Linux_Kernel
帖子详情
读写软盘扇区的算法
fxc123
2005-12-30 11:36:50
在一个读软盘扇区的函数中,作者用下面的公式进行计算:
设扇区号为 x
; ┌ 柱面号 = y >> 1
; x ┌ 商 y ┤
; -------------- => ┤ └ 磁头号 = y & 1
; 每磁道扇区数 │
; └ 余 z => 起始扇区号 = z + 1
但这样,如果有一个扇区是在磁头0,23磁道的第5个上。那它的商就是22,再除2就不对了吧?
...全文
149
10
打赏
收藏
读写软盘扇区的算法
在一个读软盘扇区的函数中,作者用下面的公式进行计算: 设扇区号为 x ; ┌ 柱面号 = y >> 1 ; x ┌ 商 y ┤ ; -------------- => ┤ └ 磁头号 = y & 1 ; 每磁道扇区数 │ ; └ 余 z => 起始扇区号 = z + 1 但这样,如果有一个扇区是在磁头0,23磁道的第5个上。那它的商就是22,再除2就不对了吧?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fxc123
2005-12-31
打赏
举报
回复
再顶
fxc123
2005-12-31
打赏
举报
回复
为什么是sect[80][2][18]而不是sect[2][80][18]呢?感觉后者更符合每个磁盘2个磁头,每个磁头80个磁道,每个磁道18个扇区的规定亚?
wohow
2005-12-31
打赏
举报
回复
上面的说法不严谨。软盘的所有扇区可以看成C语言数组sect[80][2][18],也可以看成lba[80*2*18],sect[23][0][4]和lba[x]表示同一个扇区,那么x=832
wohow
2005-12-31
打赏
举报
回复
x = 23*2*18 + 0*18 + 5-1
软盘的所有扇区可以看成C语言数组sect[80][2][18],那么成员sect[23][0][4]距离sect[0][0][0]的偏移应该按照上面的公式算。注意柱面和磁头是0起始,扇区是1起始,x是0起始
y_sb
2005-12-31
打赏
举报
回复
这个嘛,我还不太了解,不过可以先顶.
wohow
2005-12-31
打赏
举报
回复
按照sect[柱面][磁头][扇区]是有道理的。
由于磁头寻道需要一定的时间,所以应该尽量把一个柱面上的扇区逻辑上放在一起,这样找到一个正确的磁道后访问的连续扇区最多。如果按照sect[2][80][18],那么每访问18个扇区后就要重新寻道,如果按照sect[80][2][18],那么每访问36个扇区后才重新寻道,访问整个软盘的速度将提高1倍。相同的道理,硬盘的磁头数远大于软盘,速度的差别就更大了。所以必然按照CHS这样的顺序来定位
fierygnu
2005-12-31
打赏
举报
回复
Cylinder-head-sector,简称CHS,是约定的定址方法。所以是sect[80][2][18]而不是sect[2][80][18]。
fxc123
2005-12-30
打赏
举报
回复
为什么x是832呢?我觉得就是x=22*18+5=401
还请大虾指导
wohow
2005-12-30
打赏
举报
回复
上面的算法是正确的。
以1.44M软盘为例,柱面=80,磁头=2,扇区=18
如果有一个扇区是在磁头0,23磁道的第5个上,那么x=832,y=46,z=4
fxc123
2005-12-30
打赏
举报
回复
自己顶
会计理论考试题
19.
软盘
插入
软盘
驱动器后,驱动器的
读写
就通过
读写
窗口存取信息。( Y ) 20.计算机的常用输入设备有打印机和键盘。( N ) 第二套 选择题 1.PC机中 Intel8088、80286、80386、80486,PemiumPⅡ、PⅢ是指_D_的不同...
网管教程 从入门到精通软件篇.txt
不能从故障恢复控制台格式化
软盘
。 /q 对驱动器进行快速格式化。不扫描驱动器看是否有坏区域,因此只应对以前格式化过的驱动器使用该参数。 /fs:file-system 指定要使用的文件系统:FAT、FAT32 或 NTFS ...
易语言 茶凉专用模块
子程序 读磁盘
扇区
, 逻辑型, 公开 .参数
扇区
号, 整数型 .参数
扇区
内容, 字节集 .子程序 读内存长整数型, 长整数型, 公开, 从内存中读取长整数型数据,失败返回失败内容 .参数 进程ID, 整数型, , 进程ID .参数 地址...
编写用逻辑
扇区
号
读写
软盘
的中断例程
求安装一个新的int 7ch中断例程,实现通过逻辑
扇区
号对
软盘
进行
读写
操作 参数说明: 1、用ah寄存器传递功能号,0表示读,1表示写 2、用bx寄存器传递要
读写
的
扇区
的逻辑
扇区
号 3、用es:si指向存储读出数据...
突破BIOS无法连续读取
软盘
72
扇区
的限制
在很多虚拟去的实现中,在读取
软盘
是,不允许连续读取超过72个
扇区
,本文描述如何突破该限制,以便我们的操作系统内核大小超过72个
扇区
时,仍能够正常加载到内存中执行!
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章