BITS 16
ORG 7c00h
_start:
cli
cld
xor ax, ax
mov ds, ax
mov es, ax
mov ss, ax
mov fs, ax
mov gs, ax
mov sp, 7c00h
mov byte [boot_media], dl
mov al, 80h
int 10h
dump:
call read
cmp word [7e00h], `am`
je show
add word [packet.lba], 1
jmp dump
show:
mov si, 7e00h
call print
hang:
jmp hang
print:
mov ah, 0eh
mov bx, 000fh
.loop:
lodsb
int 10h
test al, al
jne .loop
.done:
ret
read:
mov ah, 42h
mov dl, byte [boot_media]
mov si, packet
int 13h
ret
debug: db "HELLO WORLD", 0
boot_media: db 0
align 4
packet:
.size: dw 16
.sectors: dw 1
.offset: dw 7e00h
.segment: dw 0
.lba: dq 37bh
times 510 - ($ - $$) db 0
dw 0aa55h