0

我使用汇编程序插入,无法完成任务。我需要使用 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 代码。它将所有变量写入寄存器,然后写入结果数组。理论上加起来。但是变量的添加是错误的

4

0 回答 0