قراءة و عرض عناصر جدول بلغة تجميع معالج ميبس
(Assembleur du processeur MIPS R 3000)
1. تقديم
في
هذه التدوينة سنتطرق إلى الجداول les tableaux في لغة
تجميع معالج ميبس (Assembleur
du processeur MIPS R 3000)، و لتسهيل الفهم نبدأ أولا ببرنامج يقرأ و يعرض عناصر جدول
و سنتبعها بتدوينة أخرى تتعامل مع عناصر الجدول. و كالعادة سنقدم
أولا الخوارزمية algorithme ثم نقوم بتحويلها إلى
برنامج assembleur.
2. خوارزمية قراءة و عرض عناصر جدول
فيما نقدم خوارزمية تسمح بقراءة و عرض عناصر جدول، العناصر يقوم بإدخالها المستخدم
Algorithme Lecture_Affiche_tableaux;
var t : tableau[1..10] entier;
i
: entier ;
debut
pour i <- 1 à 10 faire
ecrire(' Donner la valeur de l'element numero ', i ,
' : ');
lire(t[i]);
fin pour
pour i <-
1 à 10 faire
ecrire(' La valeur de l'element numero ', i , ' :
');
ecrire(t[i]);
fin pour
fin.
3. برنامج قراءة و عرض عناصر جدول بلغة تجميع معالج ميبس
فيما
يلي البرنامج الذي
يقرأ و يعرض عناصر جدول بلغة تجميع معالج ميبس (Assembleur du processeur MIPS R 3000)
# Programme lecture et affichage des
elements d'un tableau de cinq lements
.data
tab : .word 0 , 0 , 0 , 0 , 0
m1 : .asciiz " Donner la valeur de l'element numero
"
m2 : .asciiz " \n La valeur de l'element numero "
m3 : .asciiz " : "
.text
main :
# Lecture des elements du tableau
li $a1 , 5 #
taille du tableau
la $a2 , tab # $a2 recoit l'adresse du premier element
li $t0 , 1 #
indice des elements
bcl_lecture:
# lecture d une valeur
la $a0 , m1
li $v0
, 4
syscall
move
$a0 , $t0
li $v0 , 1 # appel systeme pour ecrire int
syscall #
Affichage de la valeur
# Afficher
":"
la $a0 , m3
li $v0 , 4
syscall
li $v0 , 5 # appel systeme pour lire int
syscall #
lecture de la valeur
sw $v0 , ($a2) #
ecrire une valeur dnas le tableau
addi $a2 , 4 #
incrementer le pointeur du tableau par 4
addi $a1 , -1 # decrementer le compteur de la boucle
bcl_lecture
addi $t0 , 1 #
incrementer l'indice des elements
bne $a1 , $zero , bcl_lecture # si la valeur n'est pas
nulle brancher sur bcl_lecture
# Affichage des element du tableau
li $a1 , 5 #
taille du tableau
la $a2 , tab # $a2 recoit l'adresse du premier element
li $t0 , 1 #
indice des elements
bcl_affiche:
# Affichage d une valeur
la $a0 , m2
li $v0
, 4
syscall
move
$a0 , $t0
li $v0 , 1 # appel systeme pour ecrire int
syscall #
Affichage de la valeur
# Afficher
":"
la $a0 , m3
li $v0 , 4
syscall
lw $a0 , ($a2) # lire une valeur du tableau
li $v0 , 1 #
appel systeme pour ecrire int
syscall #
Affichage de la valeur
addi $a2 , 4 #
incrementer le pointeur du tableau par 4
addi $a1 , -1 # decrementer le compteur de la boucle
bcl_affiche
addi $t0 , 1 #
incrementer l'indice des elements
bne $a1 , $zero , bcl_affiche # si la valeur n'est pas
nulle brancher sur bcl_affiche
# fin du programme
li $v0 , 10
syscall
وهذا مثال على تجريب البرنامج في QtSpim.
ليصلك
الجديد و تبقى دائما على إطلاع تابع مدونتنا و زر بإستمرار صفحاتنا على الفيس بوك : :الأستاذ
بن مير عبد القادر و baek-oasis
تعليقات
إرسال تعليق