Masm不能编译psrldq指令吗?

时间:2018-06-18 17:33:34

标签: assembly masm masm32

代码只有一行,我想如果我错过了一些声明。我的ml版本是6.14.8444

错误是:

  

错误A2008:语法错误:xmm

汇编代码:

.686
.XMM
.model flat,stdcall
option casemap:none

.code
   psrldq  xmm0, 1
end

我在vs2013中尝试了内联汇编。没关系。代码:

int _tmain(unsigned int argc, _TCHAR* argv[]) {
    __asm {
        psrldq  xmm0, 1
    }
    return 0;
}

1 个答案:

答案 0 :(得分:2)

psrldqSSE2的一部分,于2001年推出.MASM版本6.14.8444于1999年发布(http://bytepointer.com/masm/index.htm#MASM_6.14)。因此,SSE2在MASM版本中是未知的。

如果您的CPU支持SSE2,您可以插入代表操作码的数据:

.686
.XMM
.model flat,stdcall
option casemap:none

.code
    db 66h, 0Fh, 73h, 0D8h, 01h      ; psrldq  xmm0, 1
end