Знает ли какой-нибудь гуру сборки аргумент (регистр dl ), который обозначает первый USB-накопитель?
Я работаю над несколькими учебными пособиями по NASM и хотел бы получитьфизическая загрузка (могу получить чистый с помощью qemu).
Это фрагмент кода, который загружает данные «ядра» с диска:
loadkernel:
mov si, LMSG ;; 'Loading kernel',13,10,0
call prints ;; ex puts()
mov dl, 0x00 ;; The disk to load from
mov ah, 0x02 ;; Read operation
mov al, 0x01 ;; Sectors to read
mov ch, 0x00 ;; Track
mov cl, 0x02 ;; Sector
mov dh, 0x00 ;; Head
mov bx, 0x2000 ;; Buffer end
mov es, bx
mov bx, 0x0000 ;; Buffer start
int 0x13
jc loadkernel
mov ax, 0x2000
mov ds, ax
jmp 0x2000:0x00
Если это имеет какое-либо значение, я использую стандартную версию BIOS Dell Inspiron 15.
Очевидно, правильное значение для меня - 0x80.
BIOS загружает жесткие диски и маркирует их, начиная с 0x80 в соответствии с этим ответом .
По какой-то причине мой конкретный BIOS решает загрузить USB-накопитель первым, поэтому я могу загружаться с него.