LBA和CHS转换


磁盘填充,先填满一个柱面之后,再填下一个柱面。LBA是从0开始的。

LBA = (C-CS)*HPC*SPT + (H-HS)*SPT + (S-SS)

C, H, S: 当前的CHS值
CS, HS, SS: Cylinder, Head, Sector的起始编号。一般来说,CS=0,HS=0,SS=1
HPC: Heads Per Cylinder,每个柱面磁头数,也就是每个柱面磁道数
SPT: Sectors Per Track,每个磁道扇区数

SPT > (S-SS) 一定成立
HPC > (H-HS) 一定成立

一般来说,CS=0,HS=0,SS=1,因此可以得出
LBA = C*HPC*SPT + H*SPT + (S-1)

以及 HPC > (H-0),即 HPC > H

因此:
S = LBA%SPT + 1
H = LBA/SPT%HPC
C = LBA/SPT/HPC

软盘中,HPC=2,所以:
C = (LBA/SPT) >> 1
H = (LBA/SPT) & 1


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM