GoAsm – version 0.60 now available here http://www.godevtool.com/Goasm.zip (http://www.godevtool.com/Goasm.zip) 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 0.60.0.1 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 0.59.0.1, while 0.60 produces different results depending on whether I use the /l flag.
DATA SECTION
num DD 0
CODE SECTION
Start:
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
:
ret
Quote
D:\PROG\TEST\GoAsm>goasm /x64 jump.asm
GoAsm.Exe Version 0.60.0.0 - Copyright Jeremy Gordon 2001-2015 - JG@JGnet.co.uk
Error!
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 0.60.0.0 - Copyright Jeremy Gordon 2001-2015 - JG@JGnet.co.uk
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 0.60.0.1 now available.
Thanks, Wayne, it works now.