# autor: Imenko Prezimić INDEX ra1234-2023
# void oduzmi_niz(long long *a, long *b, long long *r, int n)

.section .text
.globl oduzmi_niz
oduzmi_niz:
	pushl %ebp
	movl %esp, %ebp
	pushl %ebx
	pushl %esi
	pushl %edi
	
	movl 8(%ebp), %eax	# niz a
	movl 12(%ebp), %ebx	# niz b
	movl 16(%ebp), %ecx	# niz r
	
	movl $0, %esi		# indeks
	
petlja:
	cmpl $0, 20(%ebp)
	je kraj
	
poredi:
	movl 4(%ebx, %esi, 8), %edi
	cmpl %edi, 4(%eax, %esi, 8)
	jg oduzmi_od_a
	jl oduzmi_od_b
	
	movl (%ebx, %esi, 8), %edi
	cmpl %edi, (%eax, %esi, 8)
	jge oduzmi_od_a
	jl oduzmi_od_b
	
oduzmi_od_a:
	movl (%eax, %esi, 8), %edi
	subl (%ebx, %esi, 8), %edi
	movl %edi, (%ecx, %esi, 8)
	
	movl 4(%eax, %esi, 8), %edi
	sbbl 4(%ebx, %esi, 8), %edi
	movl %edi, 4(%ecx, %esi, 8)
	
	jmp sledeci
	
oduzmi_od_b:
	movl (%ebx, %esi, 8), %edi
	subl (%eax, %esi, 8), %edi
	movl %edi, (%ecx, %esi, 8)
	
	movl 4(%ebx, %esi, 8), %edi
	sbbl 4(%eax, %esi, 8), %edi
	movl %edi, 4(%ecx, %esi, 8)
	
	jmp sledeci	
	
sledeci:
	incl %esi
	decl 20(%ebp)
	jmp petlja
	
kraj:		
	popl %edi
	popl %esi
	popl %ebx	
	movl %ebp, %esp
	popl %ebp
	ret
