gpt4 book ai didi

assembly - PC 启动 : dl register and drive number

转载 作者:行者123 更新时间:2023-12-04 12:42:29 25 4
gpt4 key购买 nike

我在互联网上的某个地方读到,在跳转到 0x7c00 之前,BIOS 将启动设备的“驱动器号”加载到 %dl 中。但是这个“驱动器号”是什么?连接到计算机的每个设备都由 BIOS 分配一个编号?如果是这样,我如何知道给定设备分配给哪个号码?

阅读 GRUB 的源代码时,我发现当 %dl 设置了位 0x80 和 0x70 时,它会用 0x80 覆盖整个寄存器。这是为什么?这是代码:

jmp 3f      /* grub-setup may overwrite this jump */
testb $0x80, %dl
jz 2f
3:
/* Ignore %dl different from 0-0x0f and 0x80-0x8f. */
testb $0x70, %dl
jz 1f
2:
movb $0x80, %dl
1:

顺便一提。网上是否有关于 PC 启动过程的详细资源?特别是关于 BIOS 在将控制权交给引导加载程序之前做了什么,以及用于与之通信的标准代码(如“驱动器编号”)。我希望编写自己的引导加载程序,但我发现的所有内容都有些过于模糊,不够技术,无法在引导加载程序开始运行时通知计算机的确切状态。

最佳答案

BIOS int 13h 函数接受驱动器号。应该是DL中的那种驱动器号,一个 BIOS 理解,因为它本身使用 int 13h 来加载引导扇区。

关于assembly - PC 启动 : dl register and drive number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11174399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com