Skip to content
Snippets Groups Projects
Commit b762cbdd authored by ACIKBAS TUNA's avatar ACIKBAS TUNA
Browse files

with cell error to fix with all

parent 76ceb96c
No related merge requests found
......@@ -7,7 +7,7 @@
.text:
main:
addi $sp, $sp, -68 #allocation de 5 octets dans la pile
addi $sp, $sp, -60 #allocation de 5 octets dans la pile
#0(sp) = adresse de la pule
#4(sp) = taille de du labyrinte N*N
#8(sp) = adresse de retour vers la fonction main
......@@ -33,6 +33,7 @@ main:
li $t8,0 #cellule dans la quelle nous somme courante
boucle_jeu:
lw $a0,0($sp)
move $a1, $t8
jal obtenir_cell #val de retour est dans v0
......@@ -47,12 +48,51 @@ boucle_jeu:
move $a1,$t8
jal cellule_voisine
addi $t8,$t8,1
lw $a1, 56($sp)
li $v0, 42
syscall #nous avons nombre entre 0,3
beq $a0,$zero,Exit
move $t5,$a0
#recuperation de la numero de cellule
move $t4, $a0
mul $t4,$t4,4
la $t2, 24($sp)
add $t2,$t2,$t4
lw $s1,0($t2)
#recuperation du mur a casser
addi $a1, $t5,1
mul $t5,$t5,4
la $a0, 24($sp)
add $a0,$a0,$t5
jal casser_mur
move $t8,$s1
addi $t9,$t9,-1
beq $t9, $zero, Exit
b boucle_jeu
error_saut:
j Exit
#$ra = l'address vers la ligne 10
boucle_soustraction:
#enlever 128 tout les cellules
b boucle_soustraction
fin:
#mettre C0 + 16
#mettre CN + 32
j Exit
#première partie, traitement de cellules:
......@@ -474,9 +514,60 @@ suite:
j retour_main
casser_mur:
#a0 12($a0)
sw $ra, 8($sp)
la $t5 , 0($a0)
lw $t0, 0($a0) #contient la valeur de la cellule
li $t1 1
li $t2, 2
li $t3, 3
beq $a1,$t1,casser_mur_haut
beq $a1,$t2,casser_mur_bas
beq $a1,$t3,casser_mur_gauche
casser_mur_droit:
move $a0,$t0
li $a1, 1
jal changer_bit
j inserer_la_val
casser_mur_gauche:
move $a0,$t0
li $a1, 3
jal changer_bit
j inserer_la_val
casser_mur_haut:
move $a0,$t0
li $a1, 0
jal changer_bit
j inserer_la_val
casser_mur_bas:
move $a0,$t0
li $a1, 2
jal changer_bit
inserer_la_val:
#val a ins dans v0
sw $v0,0($t5)
j retour_main
#trouver la cellule
#a1 direction
# si a1 = 1 changer_bit $a0(valeur),0
# si a1 = 2 changer_bit $a0(valeur),2
# si a1 = 3 changer_bit $a0(valeur),3
# si a1 = 4 changer_bit $a0(valeur),1
#v0 qui contient la nouvelle valeur
modulo_n:
#a0; diviseur
#a1: dividande
......@@ -500,5 +591,10 @@ retour_fonc_v_fonc:
jr $ra
Exit:
lw $a0, 0($sp)
jal afficher_laby
la $a0,jump
li $v0,4
syscall
li $v0, 10
syscall
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment