引导加载程序读取驱动器参数

bootloader reading drive parameters

我想获取硬盘的尺寸。我发现我需要将 int 13h 与 ah = 08h 一起使用。我在 wikipedia 上发现 returns 如下:

DH heads 的最后一个逻辑索引 = number_of - 1(因为索引从 0 开始)

CX [7:6] [15:8] 柱面的逻辑最后索引 = number_of - 1(因为索引从 0 开始)

[5:0] 每个磁道扇区的逻辑最后索引 = number_of(因为索引以 1 开头)

问题是我不知道如何只读取位 [5:0] 来获取每个磁道的最后一个扇区索引,与 [7:6][15:8] 相同获取气缸的最后一个索引。如果有人能指出正确的方法或解释如何做到这一点,我将非常感激。

mov  ax, cx
and  ax, 63
shr  cl, 6
xchg cl, ch

这会在 AX 中留下扇区,在 CX 中留下柱面