User:Dendyard/sandbox

From Wikipedia, the free encyclopedia

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. GoASM is considered to be one of the most popular assemblers for Microsoft Windows. GoASM was written by Jeremy Gordon. It is available as free software and comes with several tools including an Assembler, a Resource Compiler, Linker and a Symbolic Debugger.

Features[edit]

A free assembler (GoAsm), which produces COFF object files ready to be given to a linker to create the final executable. The assembler can work with clean and obvious syntax, which is very quick, and which always tries to produce the smallest code. GoAsm also has some useful extensions to develop programs for Windows easier. It has enhanced support for making Unicode programs and can produce programs for both Win32 and Win64(x64) platforms.[1]

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.[2]
  • RadAsm Win32 Assembly IDE
  • NaGoa Visual Assembly (using GoRC only).

Examples Programs[edit]

Linking[edit]

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[edit]

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.

See also[edit]

References[edit]