News:

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

Confused by masm error A2150 with invvpid instruction

Started by campt, February 18, 2010, 03:25:37 AM

Previous topic - Next topic

campt

I'm relatively new to masm assembly, though generally manage to muddle through and have been a quasi-regular reader of the forum, but never had need to post before....

Anyways, I'm trying to figure out how to compile a 'invvpid' instruction with masm 9.00.30729.207 as follows:

invvpid rcx, qword ptr [rdx]

where rcx contains '1'
and rdx indeed contains the address of a 128 byte buffer containing the invvpid descriptor.  As far as I can tell from the Intel 2b documentation, the first operand is always a native word sized register argument and I am indeed attempting to compile native x64 code.

I'm stumped by this error, so I guess I'm not able to muddle my way through this one....  Ideas?  Thank you much!

japheth

intel docs say the second argument must be m128, in Masm this is 'OWORD ptr ...'

campt

Quote from: japheth on February 18, 2010, 06:20:19 AM
intel docs say the second argument must be m128, in Masm this is 'OWORD ptr ...'

Thanks (how to reference a m128 in masm was going to be my _next_ question)

However, the 'word register can not be first operand' error persists.  I tried changing it to ecx, other registers etc., but same error.

dedndave

i don't suppose you need these at the beginning of the file ?
        .MMX
        .XMM

campt

.MMX  or .XMM seems unlikely, invvpid is actually a VMX instruction.  I get a syntax error attempting to include them (probably not valid for ml64 I would guess...?)

I've tried a similar instruction 'invept' with the same operand types and sizes and get the same error.

hutch--

campt,

I would be inclined to scour the Microsoft MSDN site for intricacies of ML64. You should also have the current i7 Intel manuals for the later instructions in 64 bit.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

campt

Quote from: hutch-- on February 19, 2010, 04:38:13 AM
campt,

I would be inclined to scour the Microsoft MSDN site for intricacies of ML64. You should also have the current i7 Intel manuals for the later instructions in 64 bit.

I'm using the september 09 release of the Intel manuals.  Is there a trove of MSDN information aside from the fairly spartan documentation @ http://msdn.microsoft.com/en-us/library/afzk3475%28VS.71%29.aspx?  I do have a few MSDN support cases I could use, would you think this is worth using one of them for this (I suppose I'm dead in the water anyways)?  I'm just not experienced enough here to tell the difference between my own inexperience and a bug in the toolchain.

drizz

you'll need ml v10.0 (VS 2010) for "invvpid ecx,xmmword ptr [edx]"
The truth cannot be learned ... it can only be recognized.

campt

Quote from: drizz on February 19, 2010, 04:56:14 AM
you'll need ml v10.0 (VS 2010) for "invvpid ecx,xmmword ptr [edx]"

That was the trick!  Many thanks.

BlackVortex

Are these hardware virtualization instructions ? If yes, then it's very interesting. What are you doing with them though ?