Change test
This commit is contained in:
35
eval-final-projet/ref-mips/eval1.mips
Normal file
35
eval-final-projet/ref-mips/eval1.mips
Normal file
@@ -0,0 +1,35 @@
|
||||
.data
|
||||
v$a: .space 4
|
||||
|
||||
.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, 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$a # stocke variable
|
||||
lw $t1, v$a # 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
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
49
eval-final-projet/ref-mips/eval10.mips
Normal file
49
eval-final-projet/ref-mips/eval10.mips
Normal file
@@ -0,0 +1,49 @@
|
||||
.data
|
||||
|
||||
.text
|
||||
___start:
|
||||
jal f_main
|
||||
li $v0, 10
|
||||
syscall # stoppe l'execution du processus
|
||||
f_procedure:
|
||||
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 $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t0, 4($fp) # ecriture de la valeur de retour
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
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)
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
jal f_procedure
|
||||
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
|
||||
50
eval-final-projet/ref-mips/eval11.mips
Normal file
50
eval-final-projet/ref-mips/eval11.mips
Normal file
@@ -0,0 +1,50 @@
|
||||
.data
|
||||
|
||||
.text
|
||||
___start:
|
||||
jal f_main
|
||||
li $v0, 10
|
||||
syscall # stoppe l'execution du processus
|
||||
f_procedure:
|
||||
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, 4 # allocation variables locales
|
||||
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, -8($fp) # stocke variable
|
||||
lw $t1, -8($fp) # 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, 4 # 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)
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
jal f_procedure
|
||||
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
|
||||
36
eval-final-projet/ref-mips/eval12.mips
Normal file
36
eval-final-projet/ref-mips/eval12.mips
Normal file
@@ -0,0 +1,36 @@
|
||||
.data
|
||||
v$a: .space 4
|
||||
|
||||
.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, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e1
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 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
|
||||
i_e1:
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
48
eval-final-projet/ref-mips/eval13.mips
Normal file
48
eval-final-projet/ref-mips/eval13.mips
Normal file
@@ -0,0 +1,48 @@
|
||||
.data
|
||||
v$a: .space 4
|
||||
|
||||
.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, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e0
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 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
|
||||
j i_e1
|
||||
i_e0:
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 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
|
||||
i_e1:
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
139
eval-final-projet/ref-mips/eval14.mips
Normal file
139
eval-final-projet/ref-mips/eval14.mips
Normal file
@@ -0,0 +1,139 @@
|
||||
.data
|
||||
v$tab: .space 40
|
||||
|
||||
.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)
|
||||
subi $sp, $sp, 4 # allocation variables locales
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, -8($fp) # stocke variable
|
||||
i_e0:
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
li $t0, 10
|
||||
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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e2
|
||||
li $t2, 0
|
||||
i_e2:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e1
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
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, -8($fp) # stocke variable
|
||||
j i_e0
|
||||
i_e1:
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, -8($fp) # stocke variable
|
||||
i_e3:
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
li $t0, 10
|
||||
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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e5
|
||||
li $t2, 0
|
||||
i_e5:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e4
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, v$tab($t0) # 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
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
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, -8($fp) # stocke variable
|
||||
j i_e3
|
||||
i_e4:
|
||||
addi $sp, $sp, 4 # 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
|
||||
49
eval-final-projet/ref-mips/eval15.mips
Normal file
49
eval-final-projet/ref-mips/eval15.mips
Normal file
@@ -0,0 +1,49 @@
|
||||
.data
|
||||
v$tab: .space 40
|
||||
|
||||
.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, 4
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 4
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
li $t0, 4
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, v$tab($t0) # 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
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
38
eval-final-projet/ref-mips/eval16.mips
Normal file
38
eval-final-projet/ref-mips/eval16.mips
Normal file
@@ -0,0 +1,38 @@
|
||||
.data
|
||||
v$a: .space 4
|
||||
|
||||
.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)
|
||||
i_e0:
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e1
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 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
|
||||
j i_e0
|
||||
i_e1:
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
73
eval-final-projet/ref-mips/eval17.mips
Normal file
73
eval-final-projet/ref-mips/eval17.mips
Normal file
@@ -0,0 +1,73 @@
|
||||
.data
|
||||
v$a: .space 4
|
||||
|
||||
.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, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$a # stocke variable
|
||||
i_e0:
|
||||
lw $t1, v$a # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
li $t0, 10
|
||||
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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e2
|
||||
li $t2, 0
|
||||
i_e2:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e1
|
||||
lw $t1, v$a # 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
|
||||
lw $t1, v$a # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
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$a # stocke variable
|
||||
j i_e0
|
||||
i_e1:
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
105
eval-final-projet/ref-mips/eval18.mips
Normal file
105
eval-final-projet/ref-mips/eval18.mips
Normal file
@@ -0,0 +1,105 @@
|
||||
.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
|
||||
44
eval-final-projet/ref-mips/eval19.mips
Normal file
44
eval-final-projet/ref-mips/eval19.mips
Normal file
@@ -0,0 +1,44 @@
|
||||
.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, 1
|
||||
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_cc0
|
||||
li $t0, 2
|
||||
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_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
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
91
eval-final-projet/ref-mips/eval2.mips
Normal file
91
eval-final-projet/ref-mips/eval2.mips
Normal file
@@ -0,0 +1,91 @@
|
||||
.data
|
||||
v$i: .space 4
|
||||
v$carre: .space 4
|
||||
|
||||
.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, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$i # stocke variable
|
||||
i_e0:
|
||||
lw $t1, v$i # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
li $t0, 10
|
||||
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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e2
|
||||
li $t2, 0
|
||||
i_e2:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e1
|
||||
lw $t1, v$i # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t1, v$i # 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
|
||||
mult $t0, $t1
|
||||
mflo $t2
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$carre # stocke variable
|
||||
lw $t1, v$carre # 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
|
||||
lw $t1, v$i # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
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$i # stocke variable
|
||||
j i_e0
|
||||
i_e1:
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
150
eval-final-projet/ref-mips/eval20.mips
Normal file
150
eval-final-projet/ref-mips/eval20.mips
Normal file
@@ -0,0 +1,150 @@
|
||||
.data
|
||||
|
||||
.text
|
||||
___start:
|
||||
jal f_main
|
||||
li $v0, 10
|
||||
syscall # stoppe l'execution du processus
|
||||
f_fact:
|
||||
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)
|
||||
lw $t1, 4($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
li $t2, -1 # egal
|
||||
beq $t0, $t1, i_e2
|
||||
li $t2, 0
|
||||
i_e2:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 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_cc3
|
||||
lw $t1, 4($fp) # 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
|
||||
li $t2, -1 # egal
|
||||
beq $t0, $t1, i_e4
|
||||
li $t2, 0
|
||||
i_e4:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 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_cc3:
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e0
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t0, 8($fp) # ecriture de la valeur de retour
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
j i_e1
|
||||
i_e0:
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
lw $t1, 4($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sub $t2, $t0, $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
jal f_fact
|
||||
addi $sp, $sp, 4 # desallocation parametres
|
||||
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
|
||||
mult $t0, $t1
|
||||
mflo $t2
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t0, 8($fp) # ecriture de la valeur de retour
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
i_e1:
|
||||
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)
|
||||
subi $sp, $sp, 4 # allocation variables locales
|
||||
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
|
||||
sw $t1, -8($fp) # stocke variable
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
jal f_fact
|
||||
addi $sp, $sp, 4 # desallocation parametres
|
||||
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, 4 # 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
|
||||
126
eval-final-projet/ref-mips/eval21.mips
Normal file
126
eval-final-projet/ref-mips/eval21.mips
Normal file
@@ -0,0 +1,126 @@
|
||||
.data
|
||||
|
||||
.text
|
||||
___start:
|
||||
jal f_main
|
||||
li $v0, 10
|
||||
syscall # stoppe l'execution du processus
|
||||
f_fibo:
|
||||
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)
|
||||
lw $t1, 4($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
li $t0, 2
|
||||
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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e2
|
||||
li $t2, 0
|
||||
i_e2:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e0
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t0, 8($fp) # ecriture de la valeur de retour
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
j i_e1
|
||||
i_e0:
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
lw $t1, 4($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sub $t2, $t0, $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
jal f_fibo
|
||||
addi $sp, $sp, 4 # desallocation parametres
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
lw $t1, 4($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
li $t0, 2
|
||||
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
|
||||
sub $t2, $t0, $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
jal f_fibo
|
||||
addi $sp, $sp, 4 # desallocation parametres
|
||||
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 $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t0, 8($fp) # ecriture de la valeur de retour
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
i_e1:
|
||||
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)
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
li $v0, 5
|
||||
syscall # lecture
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $v0, 0($sp)
|
||||
jal f_fibo
|
||||
addi $sp, $sp, 4 # desallocation parametres
|
||||
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
|
||||
197
eval-final-projet/ref-mips/eval22.mips
Normal file
197
eval-final-projet/ref-mips/eval22.mips
Normal file
@@ -0,0 +1,197 @@
|
||||
.data
|
||||
v$a: .space 4
|
||||
v$b: .space 4
|
||||
|
||||
.text
|
||||
___start:
|
||||
jal f_main
|
||||
li $v0, 10
|
||||
syscall # stoppe l'execution du processus
|
||||
f_pgcd:
|
||||
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, 4 # allocation variables locales
|
||||
lw $t1, 8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t1, 8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
div $t0, $t1
|
||||
mflo $t2
|
||||
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
|
||||
mult $t0, $t1
|
||||
mflo $t2
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sub $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, -8($fp) # stocke variable
|
||||
lw $t1, -8($fp) # 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
|
||||
li $t2, -1 # egal
|
||||
beq $t0, $t1, i_e2
|
||||
li $t2, 0
|
||||
i_e2:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e0
|
||||
lw $t1, 4($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t0, 12($fp) # ecriture de la valeur de retour
|
||||
addi $sp, $sp, 4 # 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
|
||||
j i_e1
|
||||
i_e0:
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
lw $t1, 4($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
# empile arg 1
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
jal f_pgcd
|
||||
addi $sp, $sp, 8 # desallocation parametres
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t0, 12($fp) # ecriture de la valeur de retour
|
||||
addi $sp, $sp, 4 # 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
|
||||
i_e1:
|
||||
addi $sp, $sp, 4 # 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 $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
|
||||
sw $t1, v$a # stocke variable
|
||||
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
|
||||
sw $t1, v$b # stocke variable
|
||||
lw $t1, v$b # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t1, v$a # 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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e5
|
||||
li $t2, 0
|
||||
i_e5:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e3
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
lw $t1, v$a # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
# empile arg 1
|
||||
lw $t1, v$b # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
jal f_pgcd
|
||||
addi $sp, $sp, 8 # desallocation parametres
|
||||
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
|
||||
j i_e4
|
||||
i_e3:
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
lw $t1, v$b # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
# empile arg 1
|
||||
lw $t1, v$a # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
jal f_pgcd
|
||||
addi $sp, $sp, 8 # desallocation parametres
|
||||
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
|
||||
i_e4:
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
52
eval-final-projet/ref-mips/eval23.mips
Normal file
52
eval-final-projet/ref-mips/eval23.mips
Normal file
@@ -0,0 +1,52 @@
|
||||
.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, 1
|
||||
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 $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e1
|
||||
li $t0, 5
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 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
|
||||
i_e1:
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
178
eval-final-projet/ref-mips/eval24.mips
Normal file
178
eval-final-projet/ref-mips/eval24.mips
Normal file
@@ -0,0 +1,178 @@
|
||||
.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
|
||||
61
eval-final-projet/ref-mips/eval25.mips
Normal file
61
eval-final-projet/ref-mips/eval25.mips
Normal file
@@ -0,0 +1,61 @@
|
||||
.data
|
||||
v$a: .space 4
|
||||
|
||||
.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 $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
|
||||
sw $t1, v$a # stocke variable
|
||||
lw $t1, v$a # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
li $t0, 10
|
||||
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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e0
|
||||
li $t2, 0
|
||||
i_e0:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_condexp_f2
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
j i_condexp_s1
|
||||
i_condexp_f2:
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
i_condexp_s1:
|
||||
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
|
||||
221
eval-final-projet/ref-mips/eval26.mips
Normal file
221
eval-final-projet/ref-mips/eval26.mips
Normal file
@@ -0,0 +1,221 @@
|
||||
.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)
|
||||
subi $sp, $sp, 16 # allocation variables locales
|
||||
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
|
||||
sw $t1, -8($fp) # stocke variable
|
||||
lw $t1, -8($fp) # 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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e0
|
||||
li $t2, 0
|
||||
i_e0:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 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_cc1
|
||||
lw $t1, -8($fp) # 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
|
||||
li $t2, -1 # egal
|
||||
beq $t0, $t1, i_e2
|
||||
li $t2, 0
|
||||
i_e2:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 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_cc1:
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_condexp_f4
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
j i_condexp_s3
|
||||
i_condexp_f4:
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
i_condexp_s3:
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, -12($fp) # stocke variable
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
li $t0, 100
|
||||
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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e5
|
||||
li $t2, 0
|
||||
i_e5:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 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_cc6
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t1, -8($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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e7
|
||||
li $t2, 0
|
||||
i_e7:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 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_cc6:
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_condexp_f9
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
j i_condexp_s8
|
||||
i_condexp_f9:
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
i_condexp_s8:
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, -16($fp) # stocke variable
|
||||
lw $t1, -12($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
not $t1, $t0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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_cc10
|
||||
lw $t1, -16($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
not $t1, $t0
|
||||
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
|
||||
and $t2, $t0, $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
i_cc10:
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_condexp_f12
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
j i_condexp_s11
|
||||
i_condexp_f12:
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
i_condexp_s11:
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, -20($fp) # stocke variable
|
||||
lw $t1, -12($fp) # 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
|
||||
lw $t1, -16($fp) # 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
|
||||
lw $t1, -20($fp) # 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, 16 # 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
|
||||
120
eval-final-projet/ref-mips/eval27.mips
Normal file
120
eval-final-projet/ref-mips/eval27.mips
Normal file
@@ -0,0 +1,120 @@
|
||||
.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, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_condexp_f1
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
j i_condexp_s0
|
||||
i_condexp_f1:
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_condexp_f3
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
j i_condexp_s2
|
||||
i_condexp_f3:
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
i_condexp_s2:
|
||||
i_condexp_s0:
|
||||
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, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_condexp_f5
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
j i_condexp_s4
|
||||
i_condexp_f5:
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
i_condexp_s4:
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_condexp_f7
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
j i_condexp_s6
|
||||
i_condexp_f7:
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
i_condexp_s6:
|
||||
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, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_condexp_f9
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
j i_condexp_s8
|
||||
i_condexp_f9:
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_condexp_f11
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
j i_condexp_s10
|
||||
i_condexp_f11:
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
i_condexp_s10:
|
||||
i_condexp_s8:
|
||||
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
|
||||
40
eval-final-projet/ref-mips/eval3.mips
Normal file
40
eval-final-projet/ref-mips/eval3.mips
Normal file
@@ -0,0 +1,40 @@
|
||||
.data
|
||||
v$a: .space 4
|
||||
|
||||
.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, 5
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 2
|
||||
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
|
||||
mult $t0, $t1
|
||||
mflo $t2
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 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
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
137
eval-final-projet/ref-mips/eval4.mips
Normal file
137
eval-final-projet/ref-mips/eval4.mips
Normal file
@@ -0,0 +1,137 @@
|
||||
.data
|
||||
|
||||
.text
|
||||
___start:
|
||||
jal f_main
|
||||
li $v0, 10
|
||||
syscall # stoppe l'execution du processus
|
||||
f_max:
|
||||
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)
|
||||
lw $t1, 8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e2
|
||||
li $t2, 0
|
||||
i_e2:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e1
|
||||
lw $t1, 4($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t0, 12($fp) # ecriture de la valeur de retour
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
i_e1:
|
||||
lw $t1, 8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t0, 12($fp) # ecriture de la valeur de retour
|
||||
lw $ra, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $fp, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
jr $ra
|
||||
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)
|
||||
subi $sp, $sp, 8 # allocation variables locales
|
||||
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
|
||||
sw $t1, -8($fp) # stocke variable
|
||||
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
|
||||
sw $t1, -12($fp) # stocke variable
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
# empile arg 1
|
||||
lw $t1, -12($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
jal f_max
|
||||
addi $sp, $sp, 8 # desallocation parametres
|
||||
lw $t1, -8($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
|
||||
li $t2, -1 # egal
|
||||
beq $t0, $t1, i_e5
|
||||
li $t2, 0
|
||||
i_e5:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e3
|
||||
lw $t1, -8($fp) # 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
|
||||
j i_e4
|
||||
i_e3:
|
||||
lw $t1, -12($fp) # 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
|
||||
i_e4:
|
||||
addi $sp, $sp, 8 # 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
|
||||
525
eval-final-projet/ref-mips/eval5.mips
Normal file
525
eval-final-projet/ref-mips/eval5.mips
Normal file
@@ -0,0 +1,525 @@
|
||||
.data
|
||||
v$tab: .space 40
|
||||
|
||||
.text
|
||||
___start:
|
||||
jal f_main
|
||||
li $v0, 10
|
||||
syscall # stoppe l'execution du processus
|
||||
f_initialiser:
|
||||
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, 8
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
li $t0, 6
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
li $t0, 9
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 2
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
li $t0, 9
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 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
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
li $t0, 4
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 4
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
li $t0, 2
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 5
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
li $t0, 3
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 6
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
li $t0, 1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 7
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
li $t0, 4
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 8
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
li $t0, 5
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 9
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
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_afficher:
|
||||
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, 4 # allocation variables locales
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, -8($fp) # stocke variable
|
||||
i_e0:
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e2
|
||||
li $t2, 0
|
||||
i_e2:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e1
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, v$tab($t0) # 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
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
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, -8($fp) # stocke variable
|
||||
j i_e0
|
||||
i_e1:
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 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, 4 # 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_echanger:
|
||||
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, 4 # allocation variables locales
|
||||
lw $t1, 4($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, v$tab($t0) # 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
|
||||
sw $t1, -8($fp) # stocke variable
|
||||
lw $t1, 8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, v$tab($t0) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t1, 4($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t1, 8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, v$tab($t0) # stocke variable
|
||||
addi $sp, $sp, 4 # 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_trier:
|
||||
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, 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
|
||||
sw $t1, -16($fp) # stocke variable
|
||||
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, -8($fp) # stocke variable
|
||||
i_e3:
|
||||
lw $t1, -8($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
li $t2, -1 # egal
|
||||
beq $t0, $t1, i_e5
|
||||
li $t2, 0
|
||||
i_e5:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e4
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, -8($fp) # stocke variable
|
||||
li $t0, 0
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sw $t1, -12($fp) # stocke variable
|
||||
i_e6:
|
||||
lw $t1, -12($fp) # 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)
|
||||
li $t0, 1
|
||||
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
|
||||
sub $t2, $t0, $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t1, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e8
|
||||
li $t2, 0
|
||||
i_e8:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e7
|
||||
lw $t1, -12($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
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 $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, v$tab($t0) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t1, -12($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
add $t0, $t0, $t0
|
||||
add $t0, $t0, $t0
|
||||
lw $t1, v$tab($t0) # 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
|
||||
li $t2, -1 # inf
|
||||
blt $t0, $t1, i_e11
|
||||
li $t2, 0
|
||||
i_e11:
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
beq $t0, $zero, i_e10
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
lw $t1, -12($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 0($sp)
|
||||
# empile arg 1
|
||||
lw $t1, -12($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
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)
|
||||
jal f_echanger
|
||||
addi $sp, $sp, 8 # desallocation parametres
|
||||
addi $sp, $sp, 4 # valeur de retour ignoree
|
||||
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, -8($fp) # stocke variable
|
||||
i_e10:
|
||||
lw $t1, -12($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
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, -12($fp) # stocke variable
|
||||
j i_e6
|
||||
i_e7:
|
||||
lw $t1, -16($fp) # lit variable dans $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t1, 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
|
||||
lw $t0, 0($sp) # depile vers registre
|
||||
addi $sp, $sp, 4
|
||||
sub $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, -16($fp) # stocke variable
|
||||
j i_e3
|
||||
i_e4:
|
||||
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)
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
jal f_initialiser
|
||||
addi $sp, $sp, 4 # valeur de retour ignoree
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
li $t0, 10
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
jal f_afficher
|
||||
addi $sp, $sp, 4 # desallocation parametres
|
||||
addi $sp, $sp, 4 # valeur de retour ignoree
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
li $t0, 10
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
jal f_trier
|
||||
addi $sp, $sp, 4 # desallocation parametres
|
||||
addi $sp, $sp, 4 # valeur de retour ignoree
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
li $t0, 10
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
jal f_afficher
|
||||
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
|
||||
43
eval-final-projet/ref-mips/eval6.mips
Normal file
43
eval-final-projet/ref-mips/eval6.mips
Normal file
@@ -0,0 +1,43 @@
|
||||
.data
|
||||
v$a: .space 4
|
||||
|
||||
.text
|
||||
___start:
|
||||
jal f_main
|
||||
li $v0, 10
|
||||
syscall # stoppe l'execution du processus
|
||||
f_procedure:
|
||||
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 $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
|
||||
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)
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
jal f_procedure
|
||||
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
|
||||
49
eval-final-projet/ref-mips/eval7.mips
Normal file
49
eval-final-projet/ref-mips/eval7.mips
Normal file
@@ -0,0 +1,49 @@
|
||||
.data
|
||||
v$a: .space 4
|
||||
|
||||
.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, 5
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
li $t0, 3
|
||||
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
|
||||
sub $t2, $t0, $t1
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t2, 0($sp)
|
||||
li $t0, 2
|
||||
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 $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
|
||||
47
eval-final-projet/ref-mips/eval8.mips
Normal file
47
eval-final-projet/ref-mips/eval8.mips
Normal file
@@ -0,0 +1,47 @@
|
||||
.data
|
||||
|
||||
.text
|
||||
___start:
|
||||
jal f_main
|
||||
li $v0, 10
|
||||
syscall # stoppe l'execution du processus
|
||||
f_procedure:
|
||||
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)
|
||||
lw $t1, 4($fp) # 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
|
||||
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)
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
# empile arg 0
|
||||
li $t0, 10
|
||||
subi $sp, $sp, 4 # empile registre
|
||||
sw $t0, 0($sp)
|
||||
jal f_procedure
|
||||
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
|
||||
42
eval-final-projet/ref-mips/eval9.mips
Normal file
42
eval-final-projet/ref-mips/eval9.mips
Normal file
@@ -0,0 +1,42 @@
|
||||
.data
|
||||
|
||||
.text
|
||||
___start:
|
||||
jal f_main
|
||||
li $v0, 10
|
||||
syscall # stoppe l'execution du processus
|
||||
f_procedure:
|
||||
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 $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
|
||||
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)
|
||||
subi $sp, $sp, 4 # allocation valeur de retour
|
||||
jal f_procedure
|
||||
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
|
||||
Reference in New Issue
Block a user