||The topic of this article may not meet Wikipedia's general notability guideline. (December 2013) (Learn how and when to remove this template message)|
|This article does not cite any sources. (December 2013) (Learn how and when to remove this template message)|
|This user page or section is in the process of an expansion or major restructuring. You are welcome to assist in its construction by editing it as well. If this user page|
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.
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).
Following is a simple source code to display 'Hello World (from GoAsm)' in a console window.
DATA SECTION ; RCKEEP DD 0 ;temporary place to keep things ; CODE SECTION ; START: PUSH -11D ;STD_OUTPUT_HANDLE CALL GetStdHandle ;get, in eax, handle to active screen buffer PUSH 0,ADDR RCKEEP ;RCKEEP receives output from API PUSH 24D,'Hello World (from GoAsm)' ;24=length of string PUSH EAX ;handle to active screen buffer CALL WriteFile XOR EAX,EAX ;return zero RET
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.
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.