Yesterday I didn't have luck finding any good references to start building and debugging 64bit assembler apps, here's some information I came up with.
JWAsm -
http://www.japheth.de/JWasm.htmlJwlink -
http://www.japheth.de/JWlink.htmlWinInc -
http://www.japheth.de/WinInc.htmlPellesC -
http://www.christian-heffner.de/index.php?page=download&lang=enVisual Studio (Express 2013 for Windows desktop) -
http://msdn.microsoft.com/expressbr.cmd - Build release, no debug info
jwasm -c -win64 -Zp8 -Sg -Ic:\asm\Include -Fl=%1.txt %1.asm
@Rem Using JWLink
@Rem jwlink.exe file %1.obj name %1.exe libpath c:\asm\Lib64 runtime console
@Rem MS Linker
@Rem link.exe %1.obj /OUT:%1.exe /libpath:c:\asm\Lib64 /subsystem:console
Rem PellesC linker - Smallest output
polink.exe %1.obj /OUT:%1.exe /libpath:c:\asm\Lib64 /subsystem:console
bpd.cmd - Build to debug in PellesC
Rem Debug with PellesC
jwasm -c -win64 -Zd -Zi -Zp8 -Sg -Ic:\asm\Include -Fl=%1.txt %1.asm
polink.exe /debug %1.obj /OUT:%1.exe /libpath:c:\asm\Lib64 /subsystem:console
bmd.cmd - Build to debug in Visual Studio (Express)
Rem Debug with Visual Studio - use Visual Studio prompt
jwasm -c -win64 -Zd -Zi -Zp8 -Sg -Ic:\asm\Include -Fl=%1.txt %1.asm
link.exe /debug %1.obj /OUT:%1.exe /libpath:c:\asm\Lib64 /subsystem:console
PellesCTo debug in PellesC I created a new Win32 Console application called Test. I added a source file with the following contents:
int main()
{
}
when saving, I added it to the project. I opened the exe I want to debug. From the menu chose Project | Debug. Click OK, you should be debugging with symbolic information.
VS 2013To debug in Visual Studio 2013 Express for Windows Desktop, I created a new Win32 Console Application. Unchecked the additional options, clicked Finish. From the menu Project | Properties | Configuration Properties | Debugging. Put the full path to your executable in Command. Right click on the project Add Existing File, select your source file. From the menu Debug | Step Into (F11). You should be debugging with symbolic information.
I'd be interested in better easier ways to do this or with other assemblers as well.