Skip to content
Snippets Groups Projects
Commit 5f3193c0 authored by RAZAFINDRAMBOLA Nilaina Michael's avatar RAZAFINDRAMBOLA Nilaina Michael :shinto_shrine:
Browse files

update

parent 3a5aaa3e
Branches
No related merge requests found
......@@ -75,7 +75,8 @@ _I_hauteur_:
#->>---------------------------------------------
_I_creer_:
#prologue
sw $ra, 4($sp)
sw $ra, ($sp)
sub $sp, $sp, 4
#corps
jal _I_largeur_
move $t9, $v0
......@@ -88,8 +89,8 @@ _I_creer_:
syscall
move $a0, $s0
#epilogue
lw $ra, 4($sp)
add $sp, $sp, 4
lw $ra, ($sp)
jr $ra
#-<<---------------------------------------------
......@@ -97,7 +98,8 @@ _I_creer_:
_I_coordToAddress_:
##ARGS: $a0{y}, $a1{x}
#porlogue
sw $ra, 4($sp)
sw $ra, ($sp)
sub $sp, $sp, 4
#corps
sub $a0, $a0, 1
jal _I_largeur_
......@@ -113,7 +115,8 @@ _I_coordToAddress_:
add $v0, $v0, $a1
#epilogue
lw $ra, 4($sp)
add $sp, $sp, 4
lw $ra, ($sp)
#return
jr $ra
#-<<---------------------------------------------
......@@ -123,7 +126,8 @@ _I_addressToCoord_:
##ARGS: $a0{adress}
##SORT: $v0{y}, $v1{x}
#porlogue
sw $ra, 4($sp)
sw $ra, ($sp)
sub $sp, $sp, 4
#corps
lw $t9, initial
sub $a0, $a0, $t9
......@@ -141,7 +145,8 @@ next:
move $v1, $a0 #v1 = x
#epilogue
lw $ra, 4($sp)
add $sp, $sp, 4
lw $ra, ($sp)
#return
jr $ra
#-<<---------------------------------------------
......@@ -150,12 +155,14 @@ next:
_I_plot_:
##ARGS: $a0{y}, $a1{x}, $a2{color}
#prologue
sw $ra, 8($sp)
sw $ra, ($sp)
sub $sp, $sp, 4
#corps
jal _I_coordToAddress_
sw $a2, ($v0)
#epilogue
lw $ra, 8($sp)
add $sp, $sp, 4
lw $ra, ($sp)
#return
jr $ra
#-<<---------------------------------------------
......@@ -175,7 +182,8 @@ _I_plot_:
#ARGS; $a0{nbr obs}
_O_creer_:
#prologue
sw $ra, 8($sp)
sw $ra, ($sp)
sub $sp, $sp, 4
#corps
jal _I_largeur_
add $t9, $v0, $v0
......@@ -204,7 +212,8 @@ _O_creer_:
jal _O_affiche_
#epilogue
lw $ra, 8($sp)
add $sp, $sp, 4
lw $ra, ($sp)
jr $ra
#-<<---------------------------------------------
......@@ -214,7 +223,8 @@ _O_creer_:
_O_fillBorder_:
##ARGS:$a0{adresse tableau}, $a1{nombre obstacle}
#prologue
sw $ra, 4($sp)
sw $ra, ($sp)
sub $sp, $sp, 4
#corps
jal _I_largeur_
move $t9, $v0
......@@ -338,7 +348,8 @@ aletoire:
#bgtz $a1, aleatoire #size > 0
#epilogue
lw $ra, 4($sp)
add $sp, $sp, 4
lw $ra, ($sp)
jr $ra
#-<<---------------------------------------------
......@@ -346,7 +357,8 @@ aletoire:
_O_affiche_:
#ARGS: $a0{address}, $a1{size}
#prologue
sw $ra, 4($sp)
sw $ra, ($sp)
sub $sp, $sp, 4
#corps
lw $t0, green #set color here !
while: lw $t1, ($a0) #acces 1er element du tableau
......@@ -355,7 +367,8 @@ while: lw $t1, ($a0) #acces 1er element du tableau
add $a0, $a0, 4
bgtz $a1, while
#epilogue
lw $ra, 4($sp)
add $sp, $sp, 4
lw $ra, ($sp)
jr $ra
#-<<---------------------------------------------
......@@ -365,7 +378,8 @@ while: lw $t1, ($a0) #acces 1er element du tableau
_O_contient_:
##ARGS: $a0{adresse tableau}, $a1{size}, $a2{pixel/adresse}
#prologue
sw $ra, 4($sp)
sw $ra, ($sp)
sub $sp, $sp, 4
#corps
while_1:
beqz $a1, no #size =? 0
......@@ -379,7 +393,8 @@ yes: li $v0, 1
j next_1
next_1:
#epilogue
lw $ra, 4($sp)
sub $sp, $sp, 4
lw $ra, ($sp)
jr $ra
#-<<---------------------------------------------
......
......@@ -30,215 +30,9 @@ initial: .word 0x10040000 #dans le heap
#->>---------------------------------------------
#MAIN
_main_:
li $a0, 0
li $a1, 32
lw $a2, green
#jal _I_coordToAddress_ #v0{adresse}
#jal _I_plot_
#jal _I_addressToCoord_ #$v0{y}, $v1{x}
jal _O_creer_
j _exit_
#-<<---------------------------------------------
#->>---------------------------------------------
_I_largeur_:
#prologue
sw $ra, ($sp)
#corps
lw $t0, dsplWidth
lw $t1, unitWidth
div $v0, $t0, $t1
#epilogue
lw $ra, ($sp)
jr $ra
#-<<---------------------------------------------
#->>---------------------------------------------
_I_hauteur_:
#prologue
sw $ra, ($sp)
#corps
lw $t0, dsplHeight
lw $t1, unitHeight
div $v0, $t0, $t1
#epilgue
lw $ra, ($sp)
jr $ra
#-<<---------------------------------------------
#->>---------------------------------------------
_I_creer_:
#prologue
sw $ra, ($sp)
#corps
jal _I_largeur_
move $t0, $v0
jal _I_hauteur_
move $t1, $v0
mul $a0, $t0, $t1
mul $a0, $a0, 4 #T*sizeof(word)
li $v0, 9
syscall
#epilogue
lw $ra, ($sp)
jr $ra
#-<<---------------------------------------------
#->>---------------------------------------------
_I_coordToAddress_:
##ARGS: $a0{y}, $a1{x}
#porlogue
sw $ra, 4($sp)
#corps
sub $a0, $a0, 1
jal _I_largeur_
mul $a0, $a0, $v0
mul $a0, $a0, 4
sub $a1, $a1, 1
mul $a1, $a1, 4
lw $v0, initial
add $v0, $v0, $a0
add $v0, $v0, $a1
#epilogue
lw $ra, 4($sp)
#return
jr $ra
#-<<---------------------------------------------
#->>---------------------------------------------
_I_addressToCoord_:
##ARGS: $a0{adress}
##SORT: $v0{y}, $v1{x}
#porlogue
sw $ra, 4($sp)
#corps
lw $t9, initial
sub $a0, $a0, $t9
div $a0, $a0, 4 #0 a 0x80000
addi $a0, $a0, 1 #si (1,1) - initial => a0 = 0 {=> 1er case}
jal _I_largeur_
move $v1, $v0 #return _I_largeur_ {ex:8, ou 32}
li $v0, 1 #v0 = y = 1{incremente si mod possible}
ble $a0, $v1, next #premier teste si mod
mod: sub $a0, $a0, $v1
add $v0, $v0, 1
bgt $a0, $v1, mod
next:
move $v1, $a0 #v1 = x
#epilogue
lw $ra, 4($sp)
#return
jr $ra
#-<<---------------------------------------------
#->>---------------------------------------------
_I_plot_:
##ARGS: $a0{y}, $a1{x}, $a2{color}
#prologue
sw $ra, 8($sp)
#corps
jal _I_coordToAddress_
sw $a2, ($v0)
#epilogue
lw $ra, 8($sp)
#return
jr $ra
#-<<---------------------------------------------
#->>--REPRESENTION-DE-L-IMAGE--------------------
# Le choix de la representation des elements de l'image se fera par des coordonnes (y,x)
# la representation en abscisse et ordonnee est plus parlante pour une programmation
#
#
# Le choix de la representation des elements de l'image se fera par des adresses memoire
# la representation en adresses est plus facile a stocker
#-<<---------------------------------------------
#->>---------------------------------------------
#ARGS; $a0{nbr obs}
_O_creer_:
#prologue
sw $ra, 4($sp)
#corps
jal _I_largeur_
add $t0, $v0, $v0
jal _I_hauteur_
add $t1, $v0, $v0
add $t0, $t0, $t1
sub $t0, $t0, 4 #il y a 4 en plus avec add de mm nbr (tous bordures)
add $a0, $t0, $a0 # + obstacles
#move $a0, $t1
li $v0, 9 #allocation memoire
syscall
#epilogue
lw $ra, 4($sp)
jr $ra
#-<<---------------------------------------------
#->>---------------------------------------------
_O_affiche_:
#ARGS: $a0{address}, $a1{size}
#prologue
sw $ra, 8($sp)
#corps
lw $t0, white #set color here !
while: sw $t0, ($a0)
sub $a1, $a1, 1
add $a0, $a0, 4
bgtz $a1, while
#epilogue
lw $ra, 8($sp)
jr $ra
#-<<---------------------------------------------
#->>---------------------------------------------
_O_contient_:
##ARGS: $a0{adresse tableau}, $a1{size}, $a2{pixel/adresse}
#prologue
sw $ra, 4($sp)
#corps
o_while:
beqz $a1, no #size =? 0
beq $a0, $a2, yes #appartient ?
sub $a1, $a1, 1 #size - 1
add $a0, $a0, 4 #element suivant du tableau
bgtz $a1, while #size > 0
no: li $v0, 0
j next
yes: li $v0, 1
j next
o_next:
#epilogue
lw $ra, 4($sp)
jr $ra
#-<<---------------------------------------------
#->>---------------------------------------------
#arret complet du programme
......
.data
yes: .asciiz "yes it is\n"
no: .asciiz "no it is not\n"
.text
_main_:
li $t0, 0
li $a1, 5
for: ble $t0, $a1, _print_yes_
jal _print_no_
j _exit_
#-------------------------------------------
#fonctions d'affichage
_print_yes_:
la $a0, yes
jal _print_
addi $t0, $t0, 1
j for
_print_no_:
#prologue
sw $ra, ($sp)
sw $a0, 4($sp)
#coprs
la $a0, no
jal _print_
#epilogue
lw $ra, ($sp)
lw $a0, 4($sp)
jr $ra
_print_:
li $v0, 4
syscall
li $v0, 0
jr $ra
#-------------------------------------------
#Sortie du programme
_exit_:
li $v0, 10
syscall
\ No newline at end of file
#Pourquoi il faut prendre en compte les octes lors de l'alocation {T*sizeof(word)}
#dans _I_creer_ ?
#faut-il faire la meme chose pour creer le tableau d'obstacle?
#comment on fait les obstacle au hasard
\ No newline at end of file
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