# unsigned int setOnes(unsigned int numOnes, unsigned int start)

.section .text
.globl setOnes
setOnes:
	pushl %ebp
	movl %esp, %ebp
	pushl %esi
	pushl %ebx
	pushl %edi

	movl 8(%ebp), %ecx
	movl 12(%ebp), %ebx

	movl $0, %eax
	movl $0, %edx

sa_desne:
	movl $1, %eax
	movl $1, %esi

petlja_sa_desne:
	cmpl %esi, %ecx
	jbe sift_eax
	shll $1, %eax
	orl $1, %eax
	incl %esi
	jmp petlja_sa_desne

sift_eax:
	movl %ebx, %ecx
	shll %cl, %eax

sa_leve:
	movl 8(%ebp), %ecx
	movl $0x80000000, %edx
	movl $1, %esi

petlja_sa_leve:
	cmpl %esi, %ecx
	jbe sift_edx
	shrl $1, %edx
	orl $0x80000000, %edx
	incl %esi
	jmp petlja_sa_leve

sift_edx:
	movl %ebx, %ecx
	shrl %cl, %edx

	orl %edx, %eax

kraj:
	popl %edi
	popl %ebx
	popl %esi
	movl %ebp, %esp
	popl %ebp
	ret
