我使用汇编程序插入,无法完成任务。我需要使用 MMX 添加数组的所有元素
int32_t matr1[10] = { 3,10,100,1000,2,40,200,3}; // first matrix
int32_t matr2[6] = { 1,0,4,6, 3,7}; // second matrix
int32_t result[10] = {}; //result
...
__asm{
lea esi, matr1
//xor ecx,ecx
movq mm0,[esi]
add esi,8
metka:
paddw mm0,[esi]
add ecx,4
add esi,8
cmp ecx,8
jb metka
movq [result],mm0
movzx eax, [result]
movzx edx, [result + 2]
add eax, edx
movzx edx, [result + 4]
add eax, edx
movzx edx, [result + 6]
add eax, edx
mov [b],eax
}
我试图用 C++ 重写另一个 mmx 代码。它将所有变量写入寄存器,然后写入结果数组。理论上加起来。但是变量的添加是错误的