为什么lba寻址计算出来是-1呢?

时间:2022-02-16 15:15:01
LBA=(柱面号*磁头数+磁头号)*扇区数+扇区编号-1
lba的公式,没错吧

如果我想读0道0面1扇区的话

像我自己的硬盘
lba=(0*16+0)*255+0-1
柱面号=0 磁头数=16 磁头号=0(这个也是0吧) 扇区数=255 扇区编号=0(这个是从0开始的吧)
那么计算出来的不就是-1了吗?
请高手指点

6 个解决方案

#1


公式
LBA=C*PH*PS + H*PS + S - 1
CHS柱面、磁头、扇区)

PH,PS(柱面所拥有的最大磁头数和磁道所拥有的最大扇区数)

#2


我的印象中,扇区编号是从1开始的。

#3


引用 1 楼 luzhiwei512 的回复:
公式
LBA=C*PH*PS + H*PS + S - 1
CHS柱面、磁头、扇区)

PH,PS(柱面所拥有的最大磁头数和磁道所拥有的最大扇区数)


按你的公式算一次
lba = 0 * 16 * 255 + 0 * 255 + 0 - 1
还不是-1,除非磁头那里有错
我看书那里,扇区编号是从0开始的

#4


磁头0。。。没磁头怎么读取

#5


to 4l
我看书上说的,磁头等于面,那0面不就是0磁头了么
我就这么理解的,如果有错请指点

#6


INT 13H的参数中,驱动器号、磁头号、磁道号都是从0到某数,而扇区号是从1到某数,所以扇区编号是从1开始的,而不是从0开始。

另杨路明编著的《微型计算机系统及应用》一书中“DOS磁盘即磁盘空间分配”一节的“物理地址与逻辑扇区号对应关系”的表中也标明:物理扇区号是从1开始的,逻辑扇区号是从0开始的。

#1


公式
LBA=C*PH*PS + H*PS + S - 1
CHS柱面、磁头、扇区)

PH,PS(柱面所拥有的最大磁头数和磁道所拥有的最大扇区数)

#2


我的印象中,扇区编号是从1开始的。

#3


引用 1 楼 luzhiwei512 的回复:
公式
LBA=C*PH*PS + H*PS + S - 1
CHS柱面、磁头、扇区)

PH,PS(柱面所拥有的最大磁头数和磁道所拥有的最大扇区数)


按你的公式算一次
lba = 0 * 16 * 255 + 0 * 255 + 0 - 1
还不是-1,除非磁头那里有错
我看书那里,扇区编号是从0开始的

#4


磁头0。。。没磁头怎么读取

#5


to 4l
我看书上说的,磁头等于面,那0面不就是0磁头了么
我就这么理解的,如果有错请指点

#6


INT 13H的参数中,驱动器号、磁头号、磁道号都是从0到某数,而扇区号是从1到某数,所以扇区编号是从1开始的,而不是从0开始。

另杨路明编著的《微型计算机系统及应用》一书中“DOS磁盘即磁盘空间分配”一节的“物理地址与逻辑扇区号对应关系”的表中也标明:物理扇区号是从1开始的,逻辑扇区号是从0开始的。