Skip to content
Snippets Groups Projects
Commit 57035cfd authored by PEREZ-SIERRA ERIC's avatar PEREZ-SIERRA ERIC
Browse files

Avances faits par Abdul-Malik ajoutés, maintenat la preuve est avec un cas particulier

parent 8f73eb47
Branches
No related merge requests found
.data
.text
# st_creer : Avant : $a0 contient le nombre maximal dentiers que la pile pourra contenir.
# Après : un espace pour au moins $a0 entiers a été alloué dans le tas (heap) et $v0 contient ladresse de la pile.
li $a0, 25
# juste un cas particulier pour le moment
jal st_creer #avant st_creer, $a0 avec le nb max d'elem
move $s1, $a0 # s1 contient le nombre max d'éléments x4 donc 100
move $a0, $v0 # a0 et v0 contiennent l'adresse du tableau
jal test_remplir_25elem #on remplit les 25 éléments d'un nombre pour tester la fonction st_est_pleine
jal st_est_pleine
move $a0, $v0
li $v0, 1 #test réussit, la fonction st_est_pleine retourne 1
syscall
li $v0, 10
syscall
st_creer: #avant st_creer, $a0 avec le nb max d'elem
mul $a0, $a0, 4
li $v0, 9
syscall
jr $ra
test_remplir_25elem: #remplir tous les elem pour tester la fonction st_est_pleine
li $t2, 0 #int i=0
loop2: bge $t2, $s1, Next2
li $t3, 3
sw $t3, 0($a0)
addi $a0, $a0, 4
addi $t2, $t2, 4
j loop2
Next2: sub $a0, $a0, $s1
jr $ra
st_est_pleine: #avant st_est_pleine, $a0 a l'adresse de la pile
li $t2, 0 # int i = 0
loop: bge $t2, $s1, Next #boucle qui vérifie si chaque place du tableau est vide ou a un élément
lw $t0, 0($a0)
beq $t0, 0, libre #si t[i] = 0, alors la fonction renvoie 0
addi $t2, $t2, 4
addi $a0, $a0, 4
j loop
Next: sub $a0, $a0, $s1
li $v0, 1
jr $ra
libre: sub $a0, $a0, $s1
li $v0, 0
jr $ra
st_vide: #avant st_vide, $a0 a l'adresse de la pile
lw $t0, 0($a0)
beqz $t0, vide
li $v0, 0
j fin_fun
vide:
li $v0, 1
j fin_fun
fin_fun:
jr $ra
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