4
push word 0b800h
pop es
xor di, di
mov [es:di], word 441h
jmp $
times 510 - ($-$$) db 0
db 55h
db 0AAh
push word 0b800h
pop es
xor di, di
mov [es:di], word 441h
jmp $
times 510 - ($-$$) db 0
db 55h
db 0AAh
因为您正在编写一个没有标签的平面二进制文件。 NASM应该默认为16位。与此相关的事实是,您没有地址或标签 - 因此不需要提供[ORG ...]指令。
引导加载程序代码必须是16位代码IIRC(在x86 PC平台上) – ewanm89 2010-04-15 12:58:46
该代码没有引用ORG的标签/地址。 (只是猜测)16位指令是默认的? – wqw 2010-04-15 13:01:32
wqw答案是正确的。您只使用CPU指令,并且文件中没有可寻址的标签。 16位是平面二进制文件的默认值。对于其他类型的输出,它是32位。 – Macmade 2010-04-15 13:08:55