使用する出力形式によって異なります。で出力形式を指定しない場合-f foo
、デフォルトの出力形式 (通常は ) が使用され、出力形式としてbin
使用すると、特に明示的に定義されていbin
ない限り、16 ビット モードが選択されます。BITS
NASM マニュアルのセクション 2.1.2 にあるように、 「 NASM にオプションを指定しない-f
と、出力ファイル形式が自動的に選択されます。NASM の配布バージョンでは、デフォルトは常にbin
です。 NASM の独自のコピーをコンパイルした場合はOF_DEFAULT
、コンパイル時に再定義して、デフォルトにしたいものを選択できます。」
したがって、 を再定義していないと仮定するとOF_DEFAULT
、nasm はbin
デフォルトで出力形式として使用します。
次に、NASM マニュアルのセクション 7.1 で次のように述べていbin
ます。デバイス ドライバーは純粋なバイナリ ファイルです。純粋なバイナリ出力は、オペレーティング システムとブート ローダーの開発にも役立ちます。.COM
」.SYS
... "このbin
形式を使用すると、デフォルトで NASM が 16 ビット モードになります(セクション 6.1 を参照) bin
。OS カーネルなどの 32 ビットまたは 64 ビット コードを記述するために使用するには、BITS 32
またはを明示的に発行する必要があります。BITS 64
指令。"
次に、NASM マニュアルのセクション 6.1 にあるように、「ほとんどの場合、明示的に使用する必要はありません。32BITS
ビットまたは64ビットのオペレーティング システムで使用するために設計された、、、、、およびオブジェクト形式、すべて NASM がデフォルトでそれぞれ 32 ビットまたは 64 ビット モードを選択する原因となります。"aout
coff
elf
macho
win32
win64
BITS
したがって、が明示的に定義されていない限り、すべては使用中の出力形式に依存します。