Assembly [BITS 16]和[ORG 0x0000]指令的顺序

Assembly [BITS 16]和[ORG 0x0000]指令的顺序,assembly,kernel,nasm,opensuse,Assembly,Kernel,Nasm,Opensuse,我正在开始一些编写内核的实验,并从中获得乐趣。我已经完成了基本引导加载程序和以下指令: [BITS 16] [ORG 0x0000] 但是,在内核教程中,它从以下内容开始: [ORG 0x0000] [BITS 16] 我想知道这些指令的发布顺序是否会有所不同?我使用的是NASM版本2.06rc2,OpenSUSE 11.2,最新版本是2.08,根据指令的文档判断 顺序不应该有什么区别,因为它们告诉NASM生成具有特定条件的文件,例如使用16位和从零开始寻址。从它看来,NASM似乎足够聪明,

我正在开始一些编写内核的实验,并从中获得乐趣。我已经完成了基本引导加载程序和以下指令:

[BITS 16]
[ORG 0x0000]
但是,在内核教程中,它从以下内容开始:

[ORG 0x0000]
[BITS 16]
我想知道这些指令的发布顺序是否会有所不同?我使用的是NASM版本2.06rc2,OpenSUSE 11.2,最新版本是2.08,根据指令的文档判断


顺序不应该有什么区别,因为它们告诉NASM生成具有特定条件的文件,例如使用16位和从零开始寻址。从它看来,NASM似乎足够聪明,能够知道它将生成什么样的输出。

哪一个先到并不重要,但我的程序通常遵循以下顺序:

        cpu 8086
        bits 16
        org 256
(因为
位16
是NASM bin输出格式的默认值,所以我通常不明确指定它,除非文件中有一些
位32
部分。)

顺便说一下,带括号的表单是这些指令的较低级别、非“用户”表单

BITS指令具有完全等效的原语形式,[位16]、[位32]和[位64]。用户级表单是一个宏,它除了调用基元表单之外没有其他功能