LBA和CHS轉換

磁盤填充,先填滿一個柱面以後,再填下一個柱面。LBA是從0開始的。code

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
相關文章
相關標籤/搜索