Yea, but nasm can all do it in only one file. Consider this:
Code:
bits 16
org 7c0:0
xor ax, ax
mov ds, ax
mov cs, ax ; segments to 0, I prefer this because it makes addressing that much easier (it's more like flat model now)
mov ss, ax
mov ax, 0x1fff
mov sp, ax ; stack starts at 1fff
...
...
; fill 510 bytes with code, junk and zeros
db 0x55, 0xaa ; (i forgot the exact signature )
jump far 0:JMP_x32
JMP_x32:
bits 32 ;; here starts the 32 bit code part
...
...
...
mov eax, cr0
or eax, PAE_BIT_LOC
mov cr0, eax
bits 64 ; yay 64 mode!!! :D
Obviously this is more pseudo code than anything, but nasm can handle changing modes in the same file.