.data
	n: 	.word 16
	res:	.word 0
.text
	lui $t0,0x1001 #Donnée utilisateur
	lw $a0,0($t0) #Dans la mémoire je veux l'emplacement 0
	jal foo
	sw $v0,4($t0)
	add $a0,$0,$v0
	addi $v0,$0,34 #hexa
	syscall
	li $v0,10
	syscall
	
	foo:
		bne $a0,$0,fooNotZero #Si (n==0) return 0
		add $v0,$0,$0
		jr $ra
	fooNotZero:
		sw $t0,0($sp) #Prmeière sauvegarde c'est moins
		sw $t1,-4($sp) #sauvegarde c'est moins
		addi $sp,$sp,-8
		add $t0,$0,$a0 #a0 correspond à 16 car c'est nôtre paramètre
	fooBoucle:
		andi $t1,$a0,1 #Opérateur bit à bit pour nt1= n & 1
		bne $t1,$0,fooFinBoucle #t1 c'est le résultat de n= n&1
		srl $a0,$a0,1
		beq $0,$0,fooBoucle #on revient à la boucle
	fooFinBoucle:
		srl $a0,$a0,1
		beq $a0,$0, fooNotZero2
		add $v0,$0,$0
		beq $0,$0, fooFin
	fooNotZero2:
		add $v0,$0,$t0
	fooFin:
		addi $sp,$sp,8
		lw $t0,0($sp)
		lw $t1, 4($sp)
		jr $ra

