;long long int prodEscalarInv(int* A, short* B,ushort n);
global _generica
section .text
_generica:
%define pA [ebp+8]
%define pB [ebp+12]
%define n [ebp+16]
%define lowres [ebp-4]
%define hires [ebp-8]
push ebp
mov ebp, esp
sub esp,8
push edi
push esi
push ebx
xor ecx,ecx
mov cx,n
mov edi,pA
mov esi,pB
xor ebx,ebx
xor eax,eax
dec cx
ciclo:
mov ax,[esi+ecx]
cwde
mov edx,[edi+ebx]
imul edx
add lowres,eax
adc hires,edx
add ebx,2
sub ecx,4
cmp ecx,0
jl ciclo
mov edx,hires
mov eax,lowres
pop ebx
pop esi
pop edi
pop ebp
ret