첫 번째 USB 드라이브를 나타내는 인수 (레지스터 dl)를 어떤 어셈블리 전문가가 알고 있습니까?NASM - 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
그것은 어떤 차이가있는 경우
, 나는 주식 델 인스 (15) BIOS를 실행 해요 :이 디스크에서 "커널"데이터를로드 코드의 섹션입니다.
명백히 올바른 값은 0x80입니다.
BIOS가 하드 드라이브를로드하고 0x80 according to this answer부터 시작하여 레이블을 지정합니다.
내 BIOS가 USB 드라이브를 첫 번째로로드하기로 결정하고 어떤 이유로 부팅 할 수 있습니다.