Vous êtes sur la page 1sur 9

Compilation à l'aide de la pile

Dr GOITA
Compilation à l'aide de la pile

Dr GOITA
1 + (2 - 3) * 4
Dr GOITA
li $a0, 1 # Calcul de 1
sub $sp, $sp, 4 # Sauvegarde sur la pile
sw $a0, 0($sp)
li $a0, 2 # Calcul de 2
sub $sp, $sp, 4 # Sauvegarde sur la pile
sw $a0, 0($sp)
li $a0, 3 # Calcul de 3
lw $a1, 0($sp) # Chargement de 2 depuis la pile
add $sp, $sp, 4
sub $a0, $a1, $a0 # Calcul de 2 - 3
Dr GOITA
PILE
sub $sp, $sp, 4 # Sauvegarde sur la pile
sw $a0, 0($sp)
li $a0, 4 # Calcul de 4
lw $a1, 0($sp) # Chargement de 2 - 3 sur la pile
add $sp, $sp, 4
mul $a0, $a1, $a0 # Calcul de (2 - 3) * 4
lw $a1, 0($sp) # Chargement de 1 depuis la pile
add $sp, $sp, 4
add $a0, $a1, $a0 # Calcul de 1 + (2 - 3) * 4
Dr GOITA
Compilation à l'aide de registres

Dr GOITA
1 + (2 - 3) * 4
Dr GOITA
Dr GOITA
4+6
.data
a: .word 4
ba: .word 6
.text
main:
lw $t1,a
lw $t2,ba
add $t3,$t1,$t2
move $a0,$t3
li $v0,1
syscall # make the syscall. Dr GOITA

Vous aimerez peut-être aussi