最近我在学习一些为软盘驱动器设计的bootstrap代码。我的目标是修改程序,以便使用USB闪存驱动器。现在我看到了如何使用INT 13H函数与软盘设备通信,但我的问题是,与USB驱动器通信会有什么不同?
For example, here is a snippet of the floppy code (GNU assembler):
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中的第一个硬盘。在我的特定BIOS中,我可以更改驱动器顺序,其中包括USB驱动器。我相当确定这已经取决于BIOS,但我认为在BIOS中列出的顺序可能对应于我移动到%dl中的值。我需要找到一些文档来跟踪...
由于我对块设备的工作非常不熟悉,有人能指点我开始学习的好地方吗?
谢谢!