我需要组装方面的帮助。我在C上有此代码,我需要在Assembly上进行翻译,并且结果必须像参考一样返回到C代码。这样做时,我遇到了细分错误。有人可以帮助我吗?
更多信息:VettRis是我将结果放入其中的数组,它的构建是在输入中与另一个向量的元素rigaDs相加
我试图为唯一的寄存器XMM0进行打印,并且一切正常。但是当我进行动作时,我会遇到细分错误
float rigaDs[]={13.0, 2.0,71.8, 9.0};
float y[]={44.0, 1.4, 2.0, -4.0};
int dim=4;
float* vettRis;
centroGeo(rigaDs,dim, &vettRis);
stampaVettore(vettRis,dim);
seciton .data
rigaDs equ 8
dim equ 12
vettRis equ 16
section .text
push ebp
mov ebp, esp
pushad
mov eax, [ebp+rigaDs]
mov edi, [ebp+dim]
mov ebx, [ebp+vettRis]
xor esi, esi
forI:
cmp esi, edi
jge end
movups xmm0, [eax+esi*4]
movups [ebx+esi*4], xmm0
inc esi
jmp forI
end:
popad
mov esp, ebp
pop ebp
ret
结果应该是13.0、2.0、71.8、9.0