I'm still running 32-bit hardware, so I'm not absolutely sure, but I think your 32-bit code will still run as expected. You will lose the ability to run 16-bit (dos) code - not MS's fault, it just isn't supported in "long mode". There's more to writing actual 64-bit code than just changing eax to rax, etc. and using "-f win64" - it's a totally different interface to the OS - but I don't think that's what you're asking(?).
In Linux, we run into an "issue"... gcc and ld usually "come with" Linux, and the "new" versions expect to make 64-bit code by default. We need to specify "-386" and "-melf_i386" to tell 'em we want 32-bit code (if we do). You might run into a similar issue with Windows, if you've got new "tools" to go with your new OS...
Try it, and see what happens!
Best,
Frank