GoAsm – version 0.59 now available here http://www.godevtool.com/Goasm.zip (http://www.godevtool.com/Goasm.zip) with the following changes:
- disallowed LOCALFREE for x86 and x64 modes
- added #if #elseif #elif conditional operators && and || (simple left to right precedence)
- fixed #if NOT Number or #if ~Number
- fixed #if SYMBOL to do conditional assembly based upon the value of SYMBOL
- fixed problem with two strings and no comma between '...''...'
- fixed non-FRAME Jcc >LabelB.NamedReusableLabel used within scope of LabelA:
- modified internal memory usage for unscoped re-usable labels, forward references, and memory references
- other internal modifications for slightly quicker processing
- removed support for ENDSSTRUC and ENDSSTRUCT (with double S)
GoAsm - version 0.59.0.1 now up with the following adjustments:
- fixed MACRO UNION LOCALEQU not being processed
- fixed INVOKE not doing additional parameters after line continuation
- fixed symbol definitions with no space in front of =
GoLink – version 1.0.1.0 now available here http://www.godevtool.com/Golink.zip (http://www.godevtool.com/Golink.zip) with the following changes:
- input file(s) reserved memory increased from 96MB to 512MB
- output file reserved memory varies from 8MB to 512MB depending upon the input size actually used
For the GoAsm string fix, there was an undocumented partial carry over from GoRC (which retains a doubled-up quote as that quote within a string). The intended GoAsm support for the leading and trailing case is now documented.
As for quicker processing, I know, only by milliseconds. Still, without include files and primarily use of unscoped re-usable labels within procedures, possibly up to ~26% quicker. Overall most likely closer to ~1% for others, possibly more for smaller programs with up to ~15% quicker going through include files.
Quote from: wjr on November 29, 2014, 11:30:23 AM
- added #if #elseif #elif conditional operators && and || (simple left to right precedence)
Thanks, Wayne, that was my request. Now I can simplify quite a bit of code. :icon_cool:
Great progress on GoAsm wjr,
not sure but I experience a problem when compiling an older project:
DATA? SECTION
;global used variables
context CONTEXT <>
//pbi PROCESS_BASIC_INFORMATION <>
winversion OSVERSIONINFOEX <>
The error comes here when compiling the source --> at the winversion line:
unexpected material <>
I am calling the function like this:
mov D[winversion.dwOSVersionInfoSize], sizeof OSVERSIONINFOEX
invoke GetVersionEx, offset winversion
using the earlier version of GoAsm 0.58.0.4 it compiles just fine, maybe you can look into it.
GoAsm 0.59 IMPORTANT ISSUES
Hi Wayne,
There are some important issues I have detected in GoAsm 0.59 that did not happen in previous versions:
TestMacro1(%1) MACRO
Mov Eax, %1
Ret
ENDM
GoAsm fires the following error:
Unknown mnemonic, instruction, redefinition or directive:-
TestMacro1(%1) Macro
You can solve this issue by Including the macro in a section (but that should not be necessary):
.Const
TestMacro1(%1) MACRO
Mov Eax, %1
Ret
ENDM
But then GoAsm complains again with:
Use square brackets to address memory, ADDR or OFFSET to get address:-
Mov Eax, %1
This new issue can be solved by using brackets:
.Const
TestMacro1(%1) MACRO
Mov Eax, [%1]
Ret
ENDM
But then if another macro is defined:
.Const
TestMacro1(%1) MACRO
Mov Eax, [%1]
Ret
ENDM
TestMacro2(%1) MACRO
Mov Eax, [%1]
Ret
ENDM
GoAsm fires the following error:
Label of this name already declared:-
%1) Macro
It seems that arguments name cannot be repited, which has no sense for macros.
Finally, the following splitted line:
Invoke CreateFile, Addr ASCIIName, GENERIC_READ, 0, \
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, NULL
Gives the error:
Expecting a parameter after comma in INVOKE
Defined in Line 312 of the include file winnt.inc as:
80000000h
The "\" char does not do its job and you cannot have splitted lines. If you put all line together (unsplitted), then it works.
All this did not happen in previous versions and it can be a real mess for all projects coded before this last version of GoAsm.
I attach a test code where you can see all errors commented above (hope it can help).
Regards,
Ramon
Sorry about that, despite efforts at avoiding errors with flag changes and program flow rearranging, a few still surprisingly slipped through. At least they were quick and easy to find and fix. GoAsm version 0.59.0.1 now available.
Wayne,
Thanks for all your efforts, 0.59.0.1 works like a charm!!.
Wayne,
Thank you very much!
Version 0.59.0.1 works fine.
Hi Wjr,
I guess you know the url for GoAsm and GoLink doesn't work.
Could you post one that does?
Thank you.
Thanks, I didn't, but I do now as does Jeremy - things should be back up as usual soon, but it will take a few days...
Quote from: wjr on January 07, 2015, 08:02:11 AM
Thanks, I didn't, but I do now as does Jeremy - things should be back up as usual soon, but it will take a few days...
That's good news. I've used GoLink for some projects with nasm/yasm. It's a good linker. Let us know about the necessary update.
Gunther
The website is back up...
FINALLY! I could dload them.
The download works for me now. I've downloaded both (GoAsm and GoLink) and they are working well.
Gunther
Thanks WJR :biggrin: