我最近一直在研究一些用于软盘驱动器的引导代码。我的目标是修改程序,以便它使用我的 USB 闪存驱动器。现在我看到了 INT 13H 函数是如何与软盘设备一起使用的,但我想我的问题是,与 USB 驱动器的通信会有什么不同?
例如,这里是一段软盘代码(GNU 汇编器):
movb $0x00,%dl /* select 1st floppy */
/* later */
movw sec,%cx /* get sector number */
movw head,%dx /* get head number */
movw $0x0201,%ax /* read 1 sector */
int $0x13
现在我已经读到将 0x80 移动到 %dl 将选择 BIOS 中的第一个 HDD。在我的特定 BIOS 中,我可以更改驱动器顺序,其中包括 USB 驱动器。我很确定这将变得依赖于 BIOS,但我认为 BIOS 中列出的顺序可能对应于我移入 %dl 的值。我需要追踪一些文档...
我真的不熟悉使用块设备,有人可以指出我一个开始学习更多的好地方吗?
谢谢!