使用する出力形式によって異なります。で出力形式を指定しない場合-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 ビット モードを選択する原因となります。"aoutcoffelfmachowin32win64
BITSしたがって、が明示的に定義されていない限り、すべては使用中の出力形式に依存します。