User:Dendyard/GoASM

The Go Tools Assembler (GoASM) is an assembler for the Intel x86 architecture. It can be used to write 32-bit (IA-32) and 64-bit (x86-64) programs. It is free software and has several associated tools including an Assembler, a Resource Compiler, Linker and a Symbolic Debugger.

Features
The assembler (GoAsm) produces COFF object files ready to be given to a linker to create the final executable. GoAsm also has some extensions for Windows program development. It supports the development of Unicode programs and can produce programs for both Win32 and Win64(x64) platforms.

GoASM can be used to program a low level language (assembly) together with a very high level language (Windows API) with the linker.

GoASM can be integrated with several IDEs.


 * Easy Code for GoAsm.
 * RadAsm Win32 Assembly IDE
 * NaGoa Visual Assembly (using GoRC only).

Examples Programs
Following is a simple source code to display 'Hello World (from GoAsm)' in a console window.

Linking
A free linker (GoLink), which takes COFF object files and a Res file and creates EXE or DLL executables that are able to run under Windows Win32 or Win64(x64). This is a full featured but "reduced baggage" linker which keeps files to a minimum. The programmer does not need Lib files to identify what functions reside in the DLLs, Instead GoLink looks inside the DLLs themselves. Used with GoAsm, this linker can report on redundant data and code in your programs. Has full but easy-to-use support for the Microsoft Layer for Unicode, and also allows use of Unicode filenames and labels.

Debugging
GoBug is a free Win32 symbolic debugger for assembler programmers, together with "Testbug" its accompanying test program and comes with the assembler. It is itself written entirely in assembly, using GoAsm and GoLink.