News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

oword syntax for MASM 7

Started by Randall Hyde, May 17, 2006, 04:02:15 PM

Previous topic - Next topic

Randall Hyde

Hi All,
I've been using

owVar oword ?

to declare a 16-byte (XMM) variable in MASM6. When I try the same thing in MASM7 I get an error complaining about the need for a text field. Am I using this directive correctly? How do I declare 16-byte XMM variables in MASM7?
Cheers,
Randy Hyde

P1

Randall,

You got my curiosity going.

I stuck your line in a asm file and checked the listing.

mouse_eventC . . . . . . . . . .   Number    00000002h   
owVar  . . . . . . . . . . . . .   

Records:
On first pass, It appears to be declared, but not defined.  What makes you think it works?  I know it assembled without error, but it's undefined in MASM documentation and windows.inc.

It looks too much like an undeclared error to me.

Regards,  P1  :8)

Randall Hyde

Quote from: P1 on May 17, 2006, 05:16:40 PM
Randall,

You got my curiosity going.

I stuck your line in a asm file and checked the listing.

mouse_eventC . . . . . . . . . .   Number    00000002h   
owVar  . . . . . . . . . . . . .   

Records:
On first pass, It appears to be declared, but not defined.  What makes you think it works?  I know it assembled without error, but it's undefined in MASM documentation and windows.inc.

It looks too much like an undeclared error to me.

Regards,  P1  :8)

Hmmm...
Well, I didn't actually *use* the symbol yet in the code, so maybe it's just a bug in MASM6 that it didn't catch this.

So the next question is, "how do I declare 16-byte XMM objects" in MASM6/7?
Cheers,
Randy Hyde

Randall Hyde

Okay, I found the following web page
http://www.intel.com/cd/ids/developer/asmo-na/eng/167741.htm?prn=Y
that suggests using XMMWORD under MASM.
Cheers,
Randy Hyde

P1

Don't forget your alignment !   :thumbu

Variables of type _m128 are automatically aligned on 16-byte boundaries.

So, if I understand this properly a data label pointing to 16 bytes aligned on a 16-byte boundary will do the trick.

Are you using ia_pni.inc in your projects?
;This macro package requires an assembler vesion 6.15.8803 or later.

Regards,  P1  :8)

Randall Hyde

Quote from: P1 on May 17, 2006, 05:40:17 PM
Don't forget your alignment !   :thumbu

Don't really need to worry about it for the current project. I'm just compiling code and comparing the output. It never actually runs (this is part of the test suite for HLA).

Quote
Variables of type _m128 are automatically aligned on 16-byte boundaries.

So, if I understand this properly a data label pointing to 16 bytes aligned on a 16-byte boundary will do the trick.

Are you using ia_pni.inc in your projects?
;This macro package requires an assembler vesion 6.15.8803 or later.

Regards,  P1  :8)

Yeah, after I made the last post I read the article closer and discovered it was a macro package. So I'm still wondering what the correct declaration for a 128-bit object is in MASM 7 (haven't gotten around to trying it yet).
Cheers,
Randy Hyde