القائمة الرئيسية

الصفحات

برنامج حساب القاسم المشترك الأكبر لعددين بلغة تجميع معالج ميبس



برنامج حساب القاسم المشترك الأكبر لعددين بلغة تجميع معالج ميبس
 (Assembleur du processeur MIPS R 3000)



برنامج حساب القاسم المشترك الأكبر لعددين بلغة تجميع معالج ميبس




1. تقديم

في هذه التدوينة سنقول بإنجاز برنامج بلغة تجميع معالج ميبس (Assembleur du processeur MIPS R 3000)، سنقدم أولا الخوارزمية algorithme التي تحسب القاسم المشترك الأكبر لعددين بطريقة القسمة ثم نقوم بتحويلها إلى برنامج assembleur.

2. خوارزمية حساب القاسم المشترك الأكبر

الخوارزمية algorithme التي تحسب القاسم المشترك الأكبر لعددين بطريقة القسمة: لحساب القاسم المشترك الأكبر بالطرح نقوم كل مرة بطرح العدد الأكبر من العدد الأصغر حتى يتساوى العددان، و عندها أحدهما هو الذي يمثل القاسم المشترك الأكبرPGCD.
لا بد أن يكون العددان صحيحان موجبان.
حتى لا نعقد الخوارزمية و البرنامج فإننا لا نفترض أن العددين موجبين.


//PGCD avec soustraction
Algorithme PGCD;
   var x,y : entier;
debut
         ecrire('Donner un nombre positif :');
         lire(x);
         ecrire('Donner un nombre positif :');
         lire(y);
         tantque x!= y faire
              si x > y alors
                      x <- x-y
             sinon
                      y <- y-x;
            finsi
         fintantque
         ecrire('le PGCD est : ',x);
fin.

3. برنامج القاسم المشترك الأكبر بلغة تجميع معالج ميبس 

فيما يلي برنامج القاسم المشترك الأكبر PGCD بلغة تجميع معالج ميبس (Assembleur du processeur MIPS R 3000)

.data


m1: .asciiz "Donner un nombre positif x  "

m2: .asciiz "Donner un nombre positif y  "
m3: .asciiz "PGCD =  " 


.text

main:


#read x

la $a0,m1
li $v0,4
syscall
li $v0, 5
syscall
move $t0, $v0


#read y

la $a0,m2
li $v0,4
syscall
li $v0, 5
syscall
move $t1, $v0

#boucle de calcul du PGCD

boucle : beq $t0, $t1, exit

bgt $t0, $t1, next
sub $t1, $t1, $t0
j boucle
next: sub $t0, $t0, $t1
j boucle


exit:


#Affichage du PGCD

la $a0,m3

li $v0,4
syscall
move $a0, $t0
li $v0, 1
syscall


li $v0, 10

syscall


.end main

4. خوارزمية حساب القاسم المشترك الأكبر معدلة

من أجل أن يصبح برنامجنا أكثر فاعلية لا بد أن نتأكد أولا من العددين موجبين قبل أن نبدأ البحث عن القاسم المشترك الأكبر، فلا بد أن نقوم بطلب إدخال العدد حتى يكون موجبا سنبدأ أولا بالخوارزمية:

//PGCD avec soustraction
Algorithme PGCD;
   var x,y : entier;
debut
     répéter
         ecrire('Donner un nombre positif :');
         lire(x);  
     jusqu'à x > 0;

     répéter
         ecrire('Donner un nombre positif :');
         lire(y);
     jusqu'à y > 0;

         tantque x!= y faire
              si x > y alors
                      x <- x-y
             sinon
                      y <- y-x;
            finsi
         fintantque
         ecrire('le PGCD est : ',x);
fin.

5. برنامج القاسم المشترك الأكبر بلغة تجميع معالج ميبس معدل

أما برنامج القاسم المشترك الأكبر PGCD بلغة تجميع معالج ميبس (Assembleur du processeur MIPS R 3000فيصبح كما يلي:

.data


m1: .asciiz "Donner un nombre positif x  "

m2: .asciiz "Donner un nombre positif y  "
m3: .asciiz "PGCD =  " 


.text

main:


#read x

readx : la $a0,m1
li $v0,4
syscall
li $v0, 5
syscall
blez $v0,readx 
move $t0, $v0


#read y

ready : la $a0,m2
li $v0,4
syscall
li $v0, 5
syscall
blez $v0,ready
move $t1, $v0

#boucle de calcul du PGCD

boucle : beq $t0, $t1, exit

bgt $t0, $t1, next
sub $t1, $t1, $t0
j boucle
next: sub $t0, $t0, $t1
j boucle


exit:


#Affichage du PGCD

la $a0,m3

li $v0,4
syscall
move $a0, $t0
li $v0, 1
syscall


li $v0, 10

syscall


.end main



واجهة برنامج QtSpim.


ليصلك الجديد و تبقى دائما على إطلاع تابع صفحاتنا على الفيس بوك :الأستاذ بن مير عبد القادر و baek-oasis

تعليقات