	.data
v$t0:	.space	4
v$t1:	.space	4
v$123:	.space	4
v$:	.space	4
v$$:	.space	4
v$$$:	.space	4
v$f:	.space	4
v$_:	.space	4

	.text
___start:
	jal	f_main
	li	$v0, 10
	syscall		 # stoppe l'execution du processus
f_f:
	subi	$sp, $sp, 4		 # empile registre
	sw	$fp, 0($sp)
	move	$fp, $sp		 # nouvelle valeur de $fp
	subi	$sp, $sp, 4		 # empile registre
	sw	$ra, 0($sp)
	subi	$sp, $sp, 12	# allocation variables locales
	lw	$t1, v$123		 # lit variable dans $t1
	subi	$sp, $sp, 4		 # empile registre
	sw	$t1, 0($sp)
	lw	$t1, -16($fp)		 # lit variable dans $t1
	subi	$sp, $sp, 4		 # empile registre
	sw	$t1, 0($sp)
	lw	$t1, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	lw	$t0, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	add	$t2, $t0, $t1
	subi	$sp, $sp, 4		 # empile registre
	sw	$t2, 0($sp)
	lw	$t1, 4($fp)		 # lit variable dans $t1
	subi	$sp, $sp, 4		 # empile registre
	sw	$t1, 0($sp)
	lw	$t1, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	lw	$t0, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	add	$t2, $t0, $t1
	subi	$sp, $sp, 4		 # empile registre
	sw	$t2, 0($sp)
	lw	$t1, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	sw	$t1, v$		 # stocke variable
	lw	$t1, v$		 # lit variable dans $t1
	subi	$sp, $sp, 4		 # empile registre
	sw	$t1, 0($sp)
	lw	$a0, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	li	$v0, 1
	syscall		 # ecriture
	li	$a0, '\n'
	li	$v0, 11
	syscall		 # ecrire char
	addi	$sp, $sp, 12	# desallocation variables locales
	lw	$ra, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	lw	$fp, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	jr	$ra
f_main:
	subi	$sp, $sp, 4		 # empile registre
	sw	$fp, 0($sp)
	move	$fp, $sp		 # nouvelle valeur de $fp
	subi	$sp, $sp, 4		 # empile registre
	sw	$ra, 0($sp)
	li	$t0, 1
	subi	$sp, $sp, 4		 # empile registre
	sw	$t0, 0($sp)
	lw	$t1, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	sw	$t1, v$t0		 # stocke variable
	lw	$t1, v$t0		 # lit variable dans $t1
	subi	$sp, $sp, 4		 # empile registre
	sw	$t1, 0($sp)
	li	$t0, 0
	subi	$sp, $sp, 4		 # empile registre
	sw	$t0, 0($sp)
	lw	$t1, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	lw	$t0, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	add	$t2, $t0, $t1
	subi	$sp, $sp, 4		 # empile registre
	sw	$t2, 0($sp)
	lw	$t1, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	sw	$t1, v$123		 # stocke variable
	subi	$sp, $sp, 4		 # allocation valeur de retour
				# empile arg 0
	lw	$t1, v$123		 # lit variable dans $t1
	subi	$sp, $sp, 4		 # empile registre
	sw	$t1, 0($sp)
	jal	f_f
	addi	$sp, $sp, 4		# desallocation parametres
	addi	$sp, $sp, 4		 # valeur de retour ignoree
	lw	$ra, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	lw	$fp, 0($sp)		 # depile vers registre
	addi	$sp, $sp, 4
	jr	$ra
