Files
compilateur-l/eval-final-projet/ref-mips/eval24.mips
2016-04-19 09:06:38 +02:00

179 lines
4.0 KiB
Plaintext

.data
.text
___start:
jal f_main
li $v0, 10
syscall # stoppe l'execution du processus
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, 3
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
lw $t0, 0($sp) # depile vers registre
addi $sp, $sp, 4
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
bne $t0, $zero, i_cc0
li $t0, 4
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
or $t2, $t0, $t1
subi $sp, $sp, 4 # empile registre
sw $t2, 0($sp)
i_cc0:
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
li $t0, 3
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
lw $t0, 0($sp) # depile vers registre
addi $sp, $sp, 4
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
beq $t0, $zero, i_cc1
li $t0, 6
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
and $t2, $t0, $t1
subi $sp, $sp, 4 # empile registre
sw $t2, 0($sp)
i_cc1:
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
li $t0, 3
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
lw $t0, 0($sp) # depile vers registre
addi $sp, $sp, 4
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
bne $t0, $zero, i_cc2
li $v0, 5
syscall # lecture
subi $sp, $sp, 4 # empile registre
sw $v0, 0($sp)
lw $t1, 0($sp) # depile vers registre
addi $sp, $sp, 4
lw $t0, 0($sp) # depile vers registre
addi $sp, $sp, 4
or $t2, $t0, $t1
subi $sp, $sp, 4 # empile registre
sw $t2, 0($sp)
i_cc2:
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
li $t0, 3
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
lw $t0, 0($sp) # depile vers registre
addi $sp, $sp, 4
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
beq $t0, $zero, i_cc3
li $v0, 5
syscall # lecture
subi $sp, $sp, 4 # empile registre
sw $v0, 0($sp)
lw $t1, 0($sp) # depile vers registre
addi $sp, $sp, 4
lw $t0, 0($sp) # depile vers registre
addi $sp, $sp, 4
and $t2, $t0, $t1
subi $sp, $sp, 4 # empile registre
sw $t2, 0($sp)
i_cc3:
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
li $t0, 0
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
lw $t0, 0($sp) # depile vers registre
addi $sp, $sp, 4
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
bne $t0, $zero, i_cc4
li $v0, 5
syscall # lecture
subi $sp, $sp, 4 # empile registre
sw $v0, 0($sp)
lw $t1, 0($sp) # depile vers registre
addi $sp, $sp, 4
lw $t0, 0($sp) # depile vers registre
addi $sp, $sp, 4
or $t2, $t0, $t1
subi $sp, $sp, 4 # empile registre
sw $t2, 0($sp)
i_cc4:
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
li $t0, 0
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
lw $t0, 0($sp) # depile vers registre
addi $sp, $sp, 4
subi $sp, $sp, 4 # empile registre
sw $t0, 0($sp)
beq $t0, $zero, i_cc5
li $v0, 5
syscall # lecture
subi $sp, $sp, 4 # empile registre
sw $v0, 0($sp)
lw $t1, 0($sp) # depile vers registre
addi $sp, $sp, 4
lw $t0, 0($sp) # depile vers registre
addi $sp, $sp, 4
and $t2, $t0, $t1
subi $sp, $sp, 4 # empile registre
sw $t2, 0($sp)
i_cc5:
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
lw $ra, 0($sp) # depile vers registre
addi $sp, $sp, 4
lw $fp, 0($sp) # depile vers registre
addi $sp, $sp, 4
jr $ra