| 1 | .data |
| 2 | values_number_str: .asciiz "Nombre de valeurs ? " |
| 3 | value_input_str: .asciiz "Valeur entiere ? " |
| 4 | average_str: .asciiz "La moyenne est " |
| 5 | newline: .asciiz "\n" |
| 6 | |
| 7 | .text |
| 8 | main: |
| 9 | jal number_values_input |
| 10 | # counter initialization |
| 11 | la $s0, ($zero) |
| 12 | la $s2, ($zero) |
| 13 | loop: |
| 14 | beq $s0, $s1, end |
| 15 | jal input_value |
| 16 | add $s2, $s2, $t0 |
| 17 | addi $s0, $s0, 1 |
| 18 | j loop |
| 19 | end: |
| 20 | divu $s2, $s1 |
| 21 | mflo $s3 |
| 22 | jal display_average |
| 23 | li $v0, 10 |
| 24 | syscall |
| 25 | |
| 26 | number_values_input: |
| 27 | la $a0, values_number_str |
| 28 | li $v0, 4 |
| 29 | syscall |
| 30 | li $v0, 5 |
| 31 | syscall |
| 32 | move $s1, $v0 |
| 33 | jr $ra |
| 34 | |
| 35 | input_value: |
| 36 | la $a0, value_input_str |
| 37 | li $v0, 4 |
| 38 | syscall |
| 39 | li $v0, 5 |
| 40 | syscall |
| 41 | move $t0, $v0 |
| 42 | jr $ra |
| 43 | |
| 44 | display_average: |
| 45 | la $a0, average_str |
| 46 | li $v0, 4 |
| 47 | syscall |
| 48 | move $a0, $s3 |
| 49 | li $v0, 1 |
| 50 | syscall |
| 51 | jr $ra |