Teehee,
0x401000, to be correct. This is default base for PE (4 MiB, 0x400000) plus one page for MZ/PE header (two or more if you have 94+ sections
). First section starts there. Should it be code section with entry point leading — it's up to you.
Executable image is loaded in clean virtual address space, so it may be based at (almost) any virtual address. DLLs can quarrel between each other for unoccupied VA space.
At least with MASM I can generate 0-based PE executable (with fixups), so it can be loaded at any appropriate base VA chosen by OS (NT prefers at least 0x10000, 9x/Me is known to choose 0x400000).
Read about logical, linear/virtual and physical addresses in Intel SDM/AMD APM.