Masm 无法编译 psrldq 指令吗?

Is Masm can't compile psrldq directive?

代码只有一行,我猜是不是漏掉了一些声明。我的 ml 版本是 6.14.8444.

错误是:

error A2008: syntax error : 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;
}

psrldqSSE2 which was introduced in 2001. MASM version 6.14.8444 was released 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