2010-04-15 10 views
4
push word 0b800h 
pop es 
xor di, di 
mov [es:di], word 441h 
jmp $ 
times 510 - ($-$$) db 0 
db 55h 
db 0AAh 
+0

引导加载程序代码必须是16位代码IIRC(在x86 PC平台上) – ewanm89 2010-04-15 12:58:46

+7

该代码没有引用ORG的标签/地址。 (只是猜测)16位指令是默认的? – wqw 2010-04-15 13:01:32

+0

wqw答案是正确的。您只使用CPU指令,并且文件中没有可寻址的标签。 16位是平面二进制文件的默认值。对于其他类型的输出,它是32位。 – Macmade 2010-04-15 13:08:55

回答

9

因为您正在编写一个没有标签的平面二进制文件。 NASM应该默认为16位。与此相关的事实是,您没有地址或标签 - 因此不需要提供[ORG ...]指令。