				;
				;		scalar product
				;
				
size				dcd		4
vector_a			dcd		1,2,3,4
vector_b			dcd		10,20,30,40
				
				mov		r3, #size
				ldr		r3,[r3]
				
				mov		r5,#vector_a
				mov		r6,#vector_b
				
				mov		r4, #0
				
scalar_prod_loop
				cmp		r3, #0
				beq		end_scalar_prod
				
				ldr		r1, [r5] ; a[i]
				ldr		r2, [r6] ; b[i]
				
				mov		r0, #0 ; result = 0
				
multiply_loop
				cmp		r2,#0 ; b == 0 ??
				beq		end_multiply
				
				add		r0,r0,r1 ; r0 = r0 + r1, result = result + a
				sub		r2,r2,#1 ; r2 = r2 - 1, b = b - 1
				
				b		multiply_loop
end_multiply
				add		r4, r4, r0 ; r4 = r4 + a[i]*b[i]
				
				add		r5,r5,#4
				add		r6,r6,#4
				sub		r3,r3,#1
				b		scalar_prod_loop
				
end_scalar_prod
				end
				
