The MASM Forum Archive 2004 to 2012

Project Support Forums => GoAsm Assembler and Tools => Topic started by: donkey on March 09, 2009, 05:21:28 PM

Title: Data Types again
Post by: donkey on March 09, 2009, 05:21:28 PM
Hi Jeremy,

I am in the process of adding full Vista and Win64 support to the headers and thought to do it the easy way using type redefinition, however I have run into the problem illustrated below

This works fine
#DEFINE PTR DD
#DEFINE HANDLE DD

NESTED STRUCT
Member1 DD
Member2 DD
ENDS

MAIN STRUCT
Member3 PTR
nest NESTED
Member4 PTR
Member5 HANDLE
ENDS

CODE SECTION
Start:
mov eax,SIZEOF MAIN
mov eax,MAIN.Member4
ret


This fails
#DEFINE PTR DD
#DEFINE HANDLE DD

NESTED STRUCT
Member1 PTR
Member2 HANDLE
ENDS

MAIN STRUCT
Member3 PTR
nest NESTED
Member4 PTR
Member5 HANDLE
ENDS

CODE SECTION
Start:
mov eax,SIZEOF MAIN
mov eax,MAIN.Member4
ret


QuoteGoAsm.Exe Version 0.56.5b - Copyright Jeremy Gordon 2001/9 - JG@JGnet.co.uk

Error!
Line 22 of assembler source file (TestStuff.asm):-
Inappropriate or missing operand to the mnemonic
mov eax,MAIN.Member4

OBJ file not made

Make error(s) occured.
Title: Re: Data Types again
Post by: donkey on March 17, 2009, 12:00:52 AM
Hi Jeremy,

No progress on this ? If it is not going to be corrected I would like to know so I can plan another approach to the 32/64 headers.

Thanks,
Edgar
Title: Re: Data Types again
Post by: jorgon on March 17, 2009, 10:16:30 PM
Hi Edgar

Slight delay but .. I am working on this.
Title: Re: Data Types again
Post by: jorgon on March 19, 2009, 12:52:07 PM
Hi Edgar

This one was in GoAsm's depths - but the fix is attached.



[attachment deleted by admin]
Title: Re: Data Types again
Post by: donkey on March 20, 2009, 04:18:08 PM
Thanks very much Jeremy, I will test tonight. I have been thinking also that there is no way to verify the version of GoAsm at compile time, is it possible to add a constant that will return a version number that can be checked ? For example

#IF GOASM_VERSION < 0x05605
    GOASM_ECHO You require an updated copy of GoAsm to use this file
    GOASM_EXIT
#ENDIF