I've been pretty silent for a while because I've been working on "Go" 64 - and here it is!
GoAsm, GoLink and GoRC are all now in new versions capable of producing 64-bit programs which can be run on X64 (x86-64) processors (such as the AMD64 or EM64T) running under Windows XP64. 
The same versions of these tools work for both 32-bit or 64-bit assembly.

All the 64-bit capable versions of these tools are currently beta versions and can be downloaded from here:-
GoAsm 32/64-bit assembler (version 0.54.01 beta with documentation 310K)
GoRC 32/64-bit resource compiler (version 0.90.0 beta 59K)
GoLink 32/64-bit linker (version 0.26.2 beta with documentation 57K)

Despite the differences between the 64-bit processors and their 32-bit counterparts, and between the x64 (Win64) operating system and Win32, using GoAsm to write 64-bit Windows programs is just as easy as it was in Win32. 
In fact, you can readily use the same source code to create executables for both platforms if you use GoAsm's enhanced instructions ARG and INVOKE and FRAME...ENDF, and conditional assembly for data sizes and structures.  Then specify /x64 in the command line to make a 64-bit object file and /x86 to make a 32-bit one.  GoLink automatically senses the type of object file to make the correct executable.
See writing 64-bit programs for details.
You can still use these versions of the tools to make 32-bit executables using your existing source code, and there is no need to change anything.  I have tried to minimise the switching to maintain speed.
All these tools are still under development and all bug reports would be appreciated. The tools do not yet offer full support for 64-bit structured exception handling.  This
is in progress but I would welcome any ideas for an appropriate syntax to use.  In 64-bit assembly it will be much easier for the assembler to offer automatic exception handling procedures.  This is because exception handling is now table based (if an exception occurs, the system looks in a table in the executable to see if the program has its own handler).  GoAsm might offer the ability to have a customised message delivered to the user, and/or a call or jump to your own exception handler, or "safe place".
GoBug will be revised to enable it to debug 64-bit applications.

The "Go" tools website is here
Posted on 2005-09-16 16:56:56 by jorgon
Very good work, Jeremy :)


Best Regards,

Posted on 2005-09-20 01:32:27 by Beyond2000!
I've now added a new version of AdaptAsm to help convert existing 32-bit source code to 64-bit source code (which can also be used as switchable 32/64 bit source code).  This alters registers as appropriate and converts all PUSH/CALL combinations to APIs into ARG/INVOKE combinations instead whilst leaving alone CALLs not to APIs.  This uses a clever javascript file which lists and counts APIs from Microsoft header files (written and kindly donated to the public domain by Leland M George).
Adaptasm is part of the (free) GoAsm package.
See writing 64-bit programs for details.

I have also updated GoAsm, GoRC and GoLink, and also "writing 64-bit programs".  The links above still work to get the new versions.

The 64-bit section of the "Go" tools website can be found here.

Posted on 2005-10-14 01:21:13 by jorgon
Great work, Jeremy :)
Posted on 2005-10-14 01:26:27 by f0dder