goasm assembler manual by jeremy gordon
TRANSCRIPT
-
7/30/2019 GoAsm Assembler Manual by Jeremy Gordon
1/2
31/03/2013 GoAsm assembler Manual by Jeremy Gordon
www.godevtool.com/GolinkFrame.htm
Download the latest version of GoLink, and this documentation
http://www.godevtool.com/Golink.ziphttp://www.godevtool.com/index.htm -
7/30/2019 GoAsm Assembler Manual by Jeremy Gordon
2/2
31/03/2013 GoAsm assembler Manual by Jeremy Gordon
www.godevtool.com/GolinkFrame.htm
.
require changing are called base relocations. Clearly th is process
takes time during loading and you can help to speed up the loading
process by specifying your own base address for your DLLs. This
will ensure that the DLL will actually be loaded at the expected base
address. I would s uggest us ing the area 10000000h to 60000000h
(the sys tem itself tends to use the area outside these values).
Ensure your value is rounded up to a 64K boundary. You can use
GoBug (inspect/search promenade memory/promenade) to check
where the operating system is loading your DLLs. It is interesting
to no te that the System DLLs themselves us e this s taggered base
address system. Usually this is in the memory area of 80000000h
and above.
GoLink inserts base relocation information in the executable only if
you use the /base xxxx switch, the /dynamicbase switch, or if you
are making a DLL or a driver.
/console = make a console executable.This sets a flag in the executable telling the Windows loader that
the executable will not rely on the Windows GUI (Graphic User
Interface). In practice this means that the executable will not be
given a message queue and that it will not require memory to be setaside for creating windows and the resulting device contexts. On
the other hand the executable will be automatically provided with a
"console" by the loader, allowing input from and output to the
various devices connected to the computer. Because of the lower
overhead, console applications tend to load and exit more quickly
than graphics applications.
/debug coff = add embedded coff debug information to the final
executable .GoLink's debug output is tailored to what is required by ass embler
programmers. Basically every symbol known to the linker is put inthe debug information together with its value. This can then be
used to bring the program to life under debug control, us ing GoBug
or other debuggers which accept coff debug information.
/debug dbg
= place coff debug information in a dbg file .If this switch is used , GoLink places the coff debug information in a
file in .dbg format in an " exe" or "dll" sub-folder depending on
what type of executable is being made. The sub-folder is used to
ensure that there is no mix-up between the main EXE and its DLLs.
So for example MyProg.exe will have its debug information placed
in exe\MyProg.dbg and MyProg.dll will have its debug information
placed in dll\MyProg.dbg.
/dll
= make a DLL.GoLink makes a DLL if either this switch is used or if using the /fo
switch you s pecify an output file with the extens ion DLL. If neither
of thes e apply and you are not making a driver, GoLink makes an
EXE.
GoLink inserts base relocation information in the executable only if
you use the /base xxxx switch, the /dynamicbase switch, or if you