Skip to content
Snippets Groups Projects
Commit a181522f authored by ANDRIANIAINA NY-HAJA-NIRINA's avatar ANDRIANIAINA NY-HAJA-NIRINA
Browse files

partie4

parent fa18b48a
Branches
No related merge requests found
.data
#couleur
red: .word 0x00ff0000
green: .word 0x0000ff00
black: .word 0x00000000
white: .word 0xffffffff
blue: .word 0x000055ff
#variables globales
unitWidth : .word 8
unitHeight: .word 8
dsplWidth: .word 256
dsplHeight: .word 256
initial : .word 0x10040000
.text
#MAIN
main:
jal F_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
#epilogue
lw $ra,($sp)
jr $ra
#----------------------------------------------------------<<<<<<<<<<<<<<<<<<<<<<<<<<<<
F_creer:
##espace memoire pour conteninr les pixels occupées par le serpent
#ARGS: VOID
#RTRN: $v0=adresse de l'espace alloué
#prologue
sw $ra,($sp)
sub $sp,$sp,4
#corps
jal _I_largeur_
move $t9, $v0
jal _I_hauteur_
move $t8, $v0
mul $a0,$t9,$t8 # passage en argument de la taille pour l'allocation
mul $a0,$a0,4 # passage en octet de la taille
li $v0,9 # allocation memoire
syscall
la $t0,initial
sw $v0,($t0)
jal F_enfiler
#epilogue
add $sp, $sp,4
lw $ra,($sp)
#return
jr $ra
F_enfiler:
#ARGS : $a0{adresse de la tete de la file}<>$a1{nouveau pixel}
#prologue
sw $ra,($sp)
sw $s0,4($sp)
sw $s1,8($sp)
sub $sp,$sp,4
#corps
jal _I_largeur_
move $t8,$v0
jal _I_hauteur_
move $t9, $v0
mul $s0, $t8,$t9 #tailleMax
lw $t0, initial #position inital de la tete du file
move $t9,$s0
while:
sw $a0,($t0) #debut du tableau = 1er adresse
sub $t9,$t9,1
add $t0,$t0,4
add $a0,$a0,4
bgtz $t9, while
#epilogue
lw $ra,($sp)
#return
jr $ra
F_defiler:
#prologue
sw $ra,($sp)
sw $s0,($sp)
#corps
Exit :
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