1组有符号16位数据扩展到32位的问题
从内存中读取的数据是16位有符号的,
在计算中需要扩展到32位,
如下代码片段:
short a[4] = {-1, 2, 3, 4};
__asm
{
lea esi, a
movaps xmm0, xmmword ptr [esi]
}
运行后,
xmm0的低64位是4X16位数据(我实际要用到的数据),我想要把它扩展成4X32位的有符号数据,怎么做比较好,
我尝试了
pxor xmm7, xmm7
punpcklwd xmm0, xmm7
但是复数的操作就不对了,
[解决办法]
看不大懂。 如果是X86汇编里,16位有符号数扩展到32位的话,需要使用MOVSX
[解决办法]
复数?what't mean?