Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

GoAsm 0.62.x updates

Started by wjr, September 20, 2022, 02:07:56 PM

Previous topic - Next topic


GoAsm – version now available here 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.
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable


Hi Edgar,

Glad to hear from you!  :thumbsup:
EC coder


Hi Edgar
I thought we lost you. It's cool to have you back here.  :biggrin:



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: