The MASM Forum Archive 2004 to 2012

Project Support Forums => GoAsm Assembler and Tools => Topic started by: donkey on March 08, 2009, 05:53:35 AM

Title: Data types
Post by: donkey on March 08, 2009, 05:53:35 AM
Hi Jeremy,

Is there any equivalent to the data type XMMWORD in GoAsm ?

http://msdn.microsoft.com/en-us/library/cw0399sf.aspx

couldn't find it in the manual but thought it might have been added.

Edgar
Title: Re: Data types
Post by: jorgon on March 08, 2009, 09:22:55 AM
Hi Edgar

Yes this is supported, but in GoAsm it has not been necessary to require a "data type" (such as "B", "W", "D" or "Q") to be specified by the programmer because the size of the data addressed by the processor is fixed and cannot be changed by the programmer. 

The size of the data addressed depends on:-
(a) the mnemonic, and
(b) the first operand.

For example:-
PUNPCKLBW MMX,[MyData]
PACKSSDW MMX,[MyData]
PACKSSDW XMM,[MyData]

As specified in the processor's specifications, the first always references a 32 bit area of memory, the second always references a 64 bit area of memory and the third always references a 128 bit area of memory.

Title: Re: Data types
Post by: donkey on March 08, 2009, 10:39:46 AM
Hi Jeremy,

Thanks, makes sense, I was more concerned about the ordering of data in memory when using 128 bit data, whether it is big or little endian.
Title: Re: Data types
Post by: jorgon on March 08, 2009, 12:12:34 PM
I see.  No, GoAsm does not provide a facility for this, but you could declare the data using DQ twice in the correct order, or a DQ repeated by commas, or you could use a structure.
DT is the largest data declaration at 80 bits.