Masm32 SDK description, downloads and other helpful links

Main Menu

GoAsm 0.60 update

Started by wjr, April 26, 2015, 04:49:39 PM

Previous topic - Next topic


GoAsm – version 0.60 now available here with the following changes:

  • added support for SSE3 instructions
  • added support for SSSE3 instructions
  • added support for AES and ADX instructions
  • added support for a few other instructions (RDTSCP MOVBE POPCNT LZCNT TZCNT RDRAND RDSEED)
  • modified prefix processing and error messages, more invalid cases noted
  • fixed use of segment override before a NOT instruction
  • fixed SBB instruction to give usual error if trying to write to CONST data
  • fixed 64-bit FPU instructions with Q[m64] operand to not have REX byte
  • fixed /ms command line switch for case of ARG before INVOKE (but each ARG will need to be on its own line)
  • modified listing file output, including:

    • extended left hand side by 8 characters
    • extended right hand side by 24 characters (for longer lines from source file)
    • added spacing character '=' on left hand side for change of SECTION
    • added relocation [...] for case of both Displacement and Immediate
    • modified code display for FRAME / INVOKE to show each instruction on one line
    • modified code display with some prefix / opcode spacing and alignment

GoAsm - version now up with the following adjustments:

  • fixed problem with 64-bit INVOKE when building without listing file


Great update wjr,
Thanks for all your hard work.


Hi Wayne,

I have noticed something strange in how 0.60 treats short jumps in x64 code. For example, the jump in the code below is OK for, while 0.60 produces different results depending on whether I use the /l flag.


num DD 0


    jne >
        mov D[rbx+4],10
        lea rax,[rbx+8]
        invoke func, 0, rax
        mov D[rbx+8],8
        lea rdi,[rbx+8]
        invoke func, rdi, 0
        invoke func, rdi, addr num

D:\PROG\TEST\GoAsm>goasm /x64 jump.asm

GoAsm.Exe Version - Copyright Jeremy Gordon 2001-2015 -

Line 9 of assembler source file (jump.asm):-
Forward short jump was to a place more than 127 bytes away (by 5 bytes)
jne >

OBJ file not made

D:\PROG\TEST\GoAsm>goasm /l /x64 jump.asm

GoAsm.Exe Version - Copyright Jeremy Gordon 2001-2015 -
Output file: jump.obj
Output file: jump.lst


Thanks! I should have caught this one (jump to wrong label). I am still working on better update testing on the 64-bit side. GoAsm version now available.


Thanks, Wayne, it works now.