Last active
February 2, 2018 19:40
-
-
Save emilydelorme/ab103d9220f3b2d1e70737805ca55244 to your computer and use it in GitHub Desktop.
TP2 - ILM
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
################################## | |
# L3INFO - TP ARC2 # | |
# Manipulation de tableaux # | |
################################## | |
.equ PRINT_INT, 1 | |
.equ PRINT_STRING, 4 | |
.equ READ_INT, 5 | |
.equ EXIT, 10 | |
.text | |
.global main | |
# Fonction 1 | |
# Lecture du tableau | |
lectureTableau: | |
addi r8, r8, 0 # i = 0 | |
addi r9, r4, 0 # tab | |
addi r10, r5, 0 # tab.lenght | |
loopLectureTableau: | |
bge r8, r10, end_loopLectureTableau | |
movia r4, msgNombre | |
addi r2, zero, PRINT_STRING # sout msgNombre | |
trap | |
addi r2, zero, READ_INT # input int | |
trap | |
muli r11, r8, 4 # i=i*4 | |
stw r2, 0(r11) | |
addi r8, r8, 1 | |
br loopLectureTableau | |
end_loopLectureTableau: | |
ret | |
# Fonction 2 | |
# Afficahge du tableau | |
affichageTableau: | |
addi r8, r8, 0 # i = 0 | |
addi r10, r5, 0 # tab | |
addi r10, r5, 0 # tab.lenght | |
loopAffichageTableau: | |
bge r8, r10, end_loopAffichageTableau | |
addi r2, zero, PRINT_INT | |
trap | |
addi r4, r4, 4 | |
addi r8, r8, 1 | |
br loopAffichageTableau | |
end_loopAffichageTableau: | |
ret | |
inversionTableau: | |
addi r8, r8, 0 # i = 0 | |
addi r9, r9, 0 # j = 0 | |
addi r10, r10, 0 # tmp = 0 | |
loopInversionTableau: | |
bge r8, r9, loopInversionTableau | |
#addi r8, r8, 1 | |
#addi r9, r9, 1 | |
br end_loopInversionTableau | |
end_loopInversionTableau: | |
ret | |
main: | |
# Affichage du message "Lecture du tableau" | |
movia r4, msgLecture | |
addi r2, zero, PRINT_STRING | |
trap | |
# Lecture du tableau | |
# affectation de l'adresse du tableau dans r4 | |
movia r4, tableau | |
# affectation de la taille du tableau dans r5 | |
addi r5, r0, 10 | |
call lectureTableau | |
# Affichage du message "Affichage du tableau" | |
movia r4, msgAffiche | |
addi r2, zero, PRINT_STRING | |
trap | |
call affichageTableau | |
# Inversion du tableau | |
movia r4, tableau | |
addi r5, r0, 10 | |
call inversionTableau | |
# Affichage du tableau | |
# affectation de l'adresse du tableau dans r4 | |
movia r4, tableau | |
# affectation de la taille du tableau dans r5 | |
addi r5, r0, 10 | |
call affichageTableau | |
# On rend la main au système. | |
addi r2, zero, EXIT | |
trap | |
.data | |
msgLecture: .asciz "Lecture du tableau.\n" | |
msgAffiche: .asciz "Affichage du tableau.\n" | |
msgNombre: .asciz "Entrez un nombre :\n" | |
# Tableau de 10 éléments | |
.align 4 | |
tableau: .word 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment