【问题标题】:bootloader reading drive parameters引导加载程序读取驱动器参数
【发布时间】:2015-10-18 20:40:38
【问题描述】:

我想获得硬盘驱动器的尺寸。我发现我需要使用 int 13h 和 ah = 08h。我在wikipedia 上发现它返回如下:

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

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

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

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

【问题讨论】:

  • 我没有任何代码,因为我从头开始,我正在考虑开发某种文件系统。我需要做的是计算这个驱动器中有多少 512 位扇区
  • 我认为只要我不知道自己在做什么就没有意义
  • 该代码并不难,它只是 5 行代码,可能是 6 行代码 xor ax,ax mov es,ax mov di,ax mov ah,0x08 int 13hdl 在读取引导加载程序时,BIOS 将驱动器号设置为正确的驱动器号
  • 从 CX 寄存器中提取部分值是否有问题?
  • @up 是的,这是我的问题

标签: assembly nasm bootloader real-mode


【解决方案1】:
mov  ax, cx
and  ax, 63
shr  cl, 6
xchg cl, ch

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

【讨论】:

    猜你喜欢
    • 2012-04-12
    • 2015-05-11
    • 2012-07-25
    • 1970-01-01
    • 2011-12-08
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多