gazdascheff
gazdascheff

Reputation: 41

Why does this 'hello world' x86 bootloader code written for NASM work without the [BITS 16] and [ORG 0x7C00] directives?

push word 0b800h
pop es
xor di, di
mov [es:di], word 441h
jmp $
times 510 - ($-$$) db 0
db 55h
db 0AAh

Upvotes: 4

Views: 1505

Answers (1)

IAbstract
IAbstract

Reputation: 19881

Because you are writing a flat binary without labels. NASM should default to 16-bit. Related to this is the fact that you have no addressing or labels - so no requirement to provide an [ORG ...] directive.

Upvotes: 10

Related Questions