# writeln # Argument entier dans a0 # Affiche son argument suivi de newline .data nl: .asciiz "\n" .text .globl writeln writeln: # l'argument est dans a0 li $v0, 1 # le numéro de print_int syscall # appel système li $v0, 4 # la primitive print_string la $a0, nl # la chaîne "\n" syscall jr $ra # saut à l'adresse ra # read # Lit un entier et le renvoie dans v0 .globl read read: li $v0, 5 # le numéro de read_int syscall # lit un entier et le place dans v0 jr $ra # fib # Argument entier dans a0, retour dans v0 .globl fib .globl loop fib: li $v1, 1 # Initialiser prec li $v0, 1 # Initialiser curr li $t0, 2 # Initialiser i loop: bgt $t0, $a0, done move $t1, $v0 add $v0, $v0, $v1 move $v1, $t1 add $t0, $t0, 1 j loop done: jr $ra # Programme principal .globl __start __start: jal read move $a0, $v0 jal fib move $a0, $v0 jal writeln li $v0, 10 # Exit syscall