アセンブリの達人は、最初のUSBドライブを意味する引数(レジスタdl )を知っていますか?
私はいくつかの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
違いがある場合は、標準のDell Inspiron15BIOSを実行しています。
どうやら、私にとって正しい値は0x80です。
BIOSはハードドライブをロードし、この回答に従って0x80からラベルを付けます。
私の特定のBIOSは、何らかの理由でUSBドライブを最初にロードすることを決定したので、そこから起動できます。