Files
2016-04-19 10:04:20 +02:00

94 lines
1.3 KiB
Plaintext

.data
$$i: .space 4
$$carre: .space 4
.text
__start:
jal main
li $v0, 10
syscall
main :
subi $sp, $sp, 4
sw $fp, 0($sp)
move $fp, $sp
subi $sp, $sp, 4
sw $ra, 0($sp)
li $t0, 0
subi $sp, $sp, 4
sw $t0, 0($sp)
lw $t0, 0($sp)
addi $sp, $sp, 4
sw $t0, $$i
e0:
lw $t0, $$i
subi $sp, $sp, 4
sw $t0, 0($sp)
li $t0, 10
subi $sp, $sp, 4
sw $t0, 0($sp)
lw $t2, 0($sp)
addi $sp, $sp, 4
lw $t1, 0($sp)
addi $sp, $sp, 4
li $t0, 1
blt $t1, $t2 e2
li $t0, 0
e2:
subi $sp, $sp, 4
sw $t0, 0($sp)
lw $t0, 0($sp)
addi $sp, $sp, 4
beq $t0 $0 e1
lw $t0, $$i
subi $sp, $sp, 4
sw $t0, 0($sp)
lw $t0, $$i
subi $sp, $sp, 4
sw $t0, 0($sp)
lw $t2, 0($sp)
addi $sp, $sp, 4
lw $t1, 0($sp)
addi $sp, $sp, 4
mult $t1, $t2
mflo $t0
subi $sp, $sp, 4
sw $t0, 0($sp)
lw $t0, 0($sp)
addi $sp, $sp, 4
sw $t0, $$carre
lw $t0, $$carre
subi $sp, $sp, 4
sw $t0, 0($sp)
lw $t0, 0($sp)
addi $sp, $sp, 4
move $a0, $t0
li $v0, 1
syscall
li $a0, '\n'
li $v0, 11
syscall
lw $t0, $$i
subi $sp, $sp, 4
sw $t0, 0($sp)
li $t0, 1
subi $sp, $sp, 4
sw $t0, 0($sp)
lw $t2, 0($sp)
addi $sp, $sp, 4
lw $t1, 0($sp)
addi $sp, $sp, 4
add $t0, $t1, $t2
subi $sp, $sp, 4
sw $t0, 0($sp)
lw $t0, 0($sp)
addi $sp, $sp, 4
sw $t0, $$i
j e0
e1:
addi $sp, $sp 0 # desallocation variables locales
lw $ra, 0($sp)
addi $sp, $sp, 4
lw $fp, 0($sp)
addi $sp, $sp, 4
addi $sp, $sp, 4 #ignore valeur de retour
jr $ra