找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3382|回复: 0

【操作系统】LBA怎么转化成CHS寻址

[复制链接]

1110

主题

1651

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24225 个
贡献
46222 次
宅之契约
0 份
在线时间
2296 小时
注册时间
2014-1-26
发表于 2014-1-26 23:09:49 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
LBA转CHS寻址的方式,c语言的表示方法如下:
柱面号 = (LBA / 每磁道扇区数) / 磁头数;
磁头号 = (LBA / 每磁道扇区数) % 磁头数;
扇区号 = (LBA % 每磁道扇区数) + 1;


16位汇编实现的代码:
  1. mov ax,[LBA]
  2. mov bx,缓冲区
  3. mov es,段
  4. xor dx,dx
  5. div word[每磁道扇区数]
  6. inc dx                                        ;dx=扇区
  7. mov cl,dl
  8. xor dx,dx
  9. div word[磁头数]
  10.                                                 ;此时ax=柱面, dx=磁头
  11. mov ch,al
  12. mov dh,dl
  13. mov dl,驱动器号
  14. mov ax,0x0201                        ;读取1个扇区
  15. int 0x13                                ;读取
  16. jnc .ReadOK                                ;读取成功,跳转
复制代码
回复

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-19 15:48 , Processed in 0.039261 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表