De todas formas te falta inicializar una de las variables...
Todas están inicializadas, solo se me olvidó suma2, que no le dí uso...
Igual es un buen aporte puesto que es totalmente válido hacerlo así... pero me pregunto ¿porque no haces el bucle usando ECX?.... esta mal codificado, pero el bucle es un for( x=0 ; x<N ; x++).
Es cierto, pero si hubiese llamadas dentro del bucle, el contador podría perderse...
Entonces así estaría mejor
N = 10
main:
sub ESP,(N+N+2)*4 ; Todas las variables
mov DWORD PTR SS: ESP,2 ; v1[0]
mov DWORD PTR SS: ESP+4,5
mov DWORD PTR SS: ESP+8,7
mov DWORD PTR SS: ESP+12,9
mov DWORD PTR SS: ESP+16,10
mov DWORD PTR SS: ESP+20,10
mov DWORD PTR SS: ESP+24,9
mov DWORD PTR SS: ESP+28,8
mov DWORD PTR SS: ESP+32,7
mov DWORD PTR SS: ESP+36,5 ; v1[9]
mov DWORD PTR SS: ESP+80,0 ; Suma1
mov DWORD PTR SS: ESP+84,0 ; Suma2
mov ECX,N-1
.bucle:
mov EAX,ECX
shl EAX,2
add EAX,ESP
mov EAX,DWORD PTR SS: EAX
add DWORD PTR SS: ESP+80,EAX ; Suma1 += v1[x]
cmp EAX,5
jbe .comparo1
mov EAX,ECX
shl EAX,2
add EAX,ESP
add EAX,40
mov DWORD PTR SS: EAX,5
add DWORD PTR SS: ESP+84,5 ; Suma2 += v2[x]
jmp .comparo1e
.comparo1:
mov EDX,ECX
shl EDX,2
add EDX,ESP
add EDX,40
mov DWORD PTR SS: EDX,EAX
add DWORD PTR SS: ESP+84,EAX ; Suma2 += v2[x]
.comparo1e:
DEC ECX
cmp ECX,-1
jne .bucle
add ESP,(N+N+2)*4 ; Todas las variables
ret