为什么';世界你好';没有[BITS 16]和[ORG 0x7C00]指令的情况下为NASM工作编写的x86引导加载程序代码?

为什么';世界你好';没有[BITS 16]和[ORG 0x7C00]指令的情况下为NASM工作编写的x86引导加载程序代码?,x86,nasm,assembly,bootloader,X86,Nasm,Assembly,Bootloader,因为您正在编写一个没有标签的平面二进制文件。NASM应默认为16位。与此相关的事实是,您没有地址或标签-因此不需要提供[ORG…]指令。引导加载程序代码必须是16位代码IIRC(在x86 PC平台上)。代码不参考标签/地址,组织才有意义。(只是猜测)16位指令是默认的?wqw答案是正确的。您只使用CPU指令,文件中没有可寻址标签。16位是平面二进制文件的默认值。对于其他类型的输出,它是32位。 push word 0b800h pop es xor di, di mov [es:di], wor

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

引导加载程序代码必须是16位代码IIRC(在x86 PC平台上)。代码不参考标签/地址,组织才有意义。(只是猜测)16位指令是默认的?wqw答案是正确的。您只使用CPU指令,文件中没有可寻址标签。16位是平面二进制文件的默认值。对于其他类型的输出,它是32位。
push word 0b800h
pop es
xor di, di
mov [es:di], word 441h
jmp $
times 510 - ($-$$) db 0
db 55h
db 0AAh