Загрузка ПК :dl регистр и номер диска

Где-то в инете читал, что перед переходом на 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:

Кстати. Есть ли какой-либо подробный ресурс о процессе загрузки ПК в Интернете? Особенно о том, что делает BIOS, прежде чем передать управление загрузчику, а также о стандартных кодах, используемых для связи с ним (, например, «номер диска» ). Я надеялся написать свой собственный загрузчик, и все, что я нашел, было слишком расплывчатым, недостаточно техническим, чтобы информировать о точном состоянии компьютера, когда мой загрузчик начинает работать.

7
задан KevinRGT 24 June 2012 в 01:44
поделиться