Skip to content
Snippets Groups Projects
Commit 18a3cada authored by GUYOMARCH NICOLAS's avatar GUYOMARCH NICOLAS
Browse files

Premier depot sur master

parents
Branches
No related merge requests found
File added
lena.bmp 0 → 100644
lena.bmp

257 KiB

lena256.bmp

65.1 KiB

.data
nomFichier: .asciiz "Entrez le nom du fichier: \n"
buffer: .word 64
.text
.globl __start
__start:
#Main
la $a0 nomFichier #Chargement de la donnee nomFichier, afin de demander le nom du fichier
jal AfficherUnString #Fonction pour afficher un string
la $a0 buffer
jal NomFichier
exit:
li $v0 10
syscall
#Fonctions
AfficheUnString:
#Entree:
# $a0: registre dans lequel l'adresse de la chaine est stockee
#
#Sortie:
# Affiche le string chargé dans $a0
#
#Description:
# Prends en entree le paramètre a0 et affiche ce qui est ecrit dans le registre
#Prologue
subiu $sp $sp 8
sw $a0 4($sp)
sw $ra 0($sp)
#Corps
li $v0 4
syscall
#Epilogue
lw $ra 0($sp)
lw $a0 4($sp)
addiu $sp $sp 8
j $ra
##########################################
NomFichier:
#Entree:
# $a0: registre avec la taille du vuffer
#
#Sortie:
# $v0: registre qui va contenir le buffer du fichier entree
#
#Description:
# Prend en argument le buffer maximal, et retourne le buffer du fichier qui est lut.
#Prologue
subiu $sp $sp
sw $a1 8($sp)
sw $a0 4($sp)
sw $ra 0($sp)
#Corps
li $v0 9
syscall
move $a1 $a0
move $a0 $v0
li $v0 8 #Syscall pour lecture de fichier
syscall #Arguments $a0: adresse du buffer d'entrée, raison pour le syscall 9. $a1: La taille maximal que l'on doit lire, raison que l'on bouge le buffer de $a0 à $a1
#Epilogue
lw $ra 0($sp)
lw $a0 4($sp)
lw $a1 8($sp)
j $ra
##########################################
\ No newline at end of file
.data
saut: .asciiz "\n"
lecArg: .asciiz "\nLecture argument : \n"
nbrArg: .asciiz "Nombre d'arguments: \n"
.text
.globl __start
__start:
move $t0 $a0
la $a0 nbrArg
li $v0 4
syscall
move $a0 $t0
li $v0 1
syscall
move $t0 $a0
move $t1 $a1
li $t8 0
la $a0 saut
li $v0 4
syscall
la $a0 lecArg
li $v0 4
syscall
loop:
beq $t8 $t0 exit #Condition d'arrêt: Lecture de tout les arguments
mul $t3 $t8 4 #Décalage par multiplication des bytes par 4
add $t3 $t3 $a1 #On sauvegarde dans $t3 la somme de l'adresse du tableau avec l'offset en cours
lw $t2 0($t3) #on enregistre dans $t2 le "mot" sauvegardé à l'adresse $t3
la $a0 ($t2) #on charge dans $a0 le registre $t2
li $v0 4 #lecture entier
syscall
la $a0 saut
li $v0 4
syscall
addi $t8 $t8 1 #Incrémentation
j loop
exit:
li $v0 10
syscall

\ No newline at end of file
.data
file: .asciiz "testD.txt"
textSpace: .space 1050
test: .word 8
test_end:
.text
.globl __start
__start:
li $v0 13
#li $a1 0 #Lecture
li $a1 0x41 #Ecriture
la $a0 file
li $a2 0x1FF
syscall
move $a0 $v0
Lecture:
#li $v0 14
#la $a1 textSpace
#li $a2 1050
#syscall
#la $a0 textSpace
#li $v0 4
#syscall
#j exit
Ecriture:
li $v0 15
la $a1 test
la $a2 test_end
la $a3 test
subu $a2 $a2 $a3
syscall
li $v0 16
syscall
exit:
li $v0 10
syscall
\ 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