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;
}
psrldq
是 SSE2 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
代码只有一行,我猜是不是漏掉了一些声明。我的 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;
}
psrldq
是 SSE2 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