GoAsm – version 0.62.0.0 now available here http://www.godevtool.com/Goasm.zip (http://www.godevtool.com/Goasm.zip) with the following changes:
- Added ARGD ARGQ and INVOKE x64 single and double floating-point support
- Added 32-bit support for ARGQ [imm64] and ARGQ imm64
- Added SHADOW space control with extensions for floating-point XMM registers
- Added USES support for XMM registers (for FRAME only)
- Added shorter encoding for INVOKE floating point immediate constant 0.0
- Removed 64-bit INVOKE check for overwritten general purpose and XMM registers
- Added mov of a 64-bit floating point immediate to a 64-bit register
- Added 64-bit imm64 0x...LL syntax for mov r64,imm64 to avoid imm32 sign extension cases
- Added listing details for ARG operands, modified spacing (on other INVOKE instructions too)
- Added listing details for function name in INVOKE_CALL
- Added listing details for repeat mnemonics and data elements along with other adjustments
- Added RET 0 in FRAME...ENDF to override stack argument cleaning allowing for CDECL
- Added instruction CMPXCHG16B
- Added 64-bit variant of MOVNTI instruction
- Modified USES LOCAL FRAME argument and line termination processing, more specific location for error
- Modified default output section names to standard '.text' '.data' '.rdata'
- Fixed problem with instructions using m8 operand with REX override and operand AH,BH,CH,DH not giving an error
- Fixed an error in the listing file for an instruction when doing the x64 SHIELD
- Fixed problem with () bracket around [...+...] macro argument with arithmetic if used more than once
- Fixed problem with ARGCOUNT and macro arguments enclosed in brackets <...,...> with comma
- Fixed problem with first member label string in a struct where struct name is redefined (ex. as A or W version)
- Fixed problem with use of SECTION ALIGN # then not processing to end of file
- Fixed problem with multiple floating-point with E+..., or E-..., in immediate INVOKE parameters or data declarations
- Fixed problem with some non-standard constant section names in static LIB file
- Fixed problem with macro argument when using a string including a # character
- Fixed problem with use of symbol defined as a memory operand with a type override (ex. rm8 = B[Var8])
- Fixed issues with type indicators with MOVSXD instruction, error with D, but not needed
- Fixed /ms symbol @.. values for case of repeat mnemonic ARG before INVOKE
- Fixed opcode encoding for MOVQ r64,xmm and MOVQ xmm/m64,xmm
- Fixed problem with 64-bit and extended 32-bit register encoding for MOV r32/64, ADDR Local/Arg
- Fixed encoding for EXTRQ instruction with 3 operands
- Fixed 64-bit multiplication overflow error for 32-bit operands
- Modified GoAsm build with IMAGE_DLLCHARACTERISTICS_NX_COMPAT bit set
- Modified GoAsm build with IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE bit set
- Modified GoAsm .idata section characteristics to 0C0000040h for no import JMP Table present (by using CALL [...] for all imports)
- Removed IMAGE_DEBUG_TYPE_MISC separate DBG file information for release version
It's been a while since I've done any assembly programming, just checked the forum for the first time in years. Good to see you're still updating the assembler. I think it's time to get re-acquainted with assembly language programming.
Hi Edgar,
Glad to hear from you! :thumbsup:
Hi Edgar
I thought we lost you. It's cool to have you back here. :biggrin:
Biterider
Quote from: Donkey on September 25, 2022, 05:57:42 AMI think it's time to get re-acquainted with assembly language programming.
Absolutely, Edgar :thumbsup: