Skip to content

Instantly share code, notes, and snippets.

@emilydelorme
Last active February 2, 2018 19:40
Show Gist options
  • Save emilydelorme/ab103d9220f3b2d1e70737805ca55244 to your computer and use it in GitHub Desktop.
Save emilydelorme/ab103d9220f3b2d1e70737805ca55244 to your computer and use it in GitHub Desktop.
TP2 - ILM
##################################
# 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