Q 2024 Mini-Projet

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

UNIVERSITE M’Hamed BOUGARA – BOUMERDES

FACULTE DES SCIENCES


DEPARTEMENT D’INFORMATIQUE

Module : Architecture des Ordinateurs Responsable du cours : H. Mokrani,


Filière : Licence Informatique Semestre : 3 Année : 2023-2024
Mini Projet
Assembleur MIPS R3000

Ce Mini-Projet est décomposé en trois parties, dans chaque partie une tâche de recherche ou d’implémentation d’un code
Assembleur MIPS R3000 est demandé. Les trois parties sont autonomes.

Partie 1
Cherchez sur le web et répondez sur les questions suivantes concernant le processeur MIPS R3000 :

1. Format des nombres flottants utilisés.


2. L’utilisation de co-processeur de gestion des flottants
o Registres utilisés.
o Instructions arithmétiques sur les nombres flottants.
o Instructions d’accès à la mémoire de gestion des flottants.
o Types et méthodes de gestion des exceptions des nombres flottants.
3. Donner un exemple de programme MIPS R3000 pour le calcul d’un problème réel sur les nombres réels.

Partie 2
4. Expliquer la méthode d’utilisation de la Pile dans un programme assembleur MIPS.
5. Quand utilise-t-on la pile ?
6. Donner un exemple de code simple d’utilisation de la pile dans un programme Assembleur MIPS.

Remarque :

• Vous devez choisir des références de qualité : Livres, Cours universitaires, ou sites d’études reconnus.

Partie 3
Soit le programme C de l’algorithme de tri de tableau suivant :

#include <stdio.h> /* Tri du tableau */


main() for (I=0; I<N-1; I++)
{ {
/* Déclarations */ /* Recherche du maximum à droite de A[I] */
int A[50];/*tableau donné */ PMAX=I;
int N; /*dimension */ for (J=I+1; J<N; J++)
int I; /* indice élément tableau */ if (A[J]>A[PMAX]) PMAX=J;
int J; /* indice élément tableau */ /* Echange de A[I] avec le maximum */
int AIDE; /* pour la permutation */ AIDE=A[I];
int PMAX; /* indique la position de l'élément */ A[I]=A[PMAX];
/* maximal à droite de A[I] */ A[PMAX]=AIDE;
}
/* Saisie des données */
printf("Dimension du tableau (max.50) : "); /* Edition du résultat */
scanf("%d", &N ); printf("Tableau trié :\n");
for (J=0; J<N; J++) for (J=0; J<N; J++)
{ printf("%d ", A[J]);
printf("Elément %d : ", J); printf("\n");
scanf("%d", &A[J]);
}
return 0;
/* Affichage du tableau */ }
printf("Tableau donné :\n");
for (J=0; J<N; J++)
printf("%d ", A[J]);
printf("\n");

1|Page
1. Ecrire puis exécuter le code C précédant. N’hésiter pas a corrigé le code s’il existe une erreur.
2. Traduire ce programme C en code assembleur MIPS.
3. Exécuter le code assembleur sur le simulateur QtSPIM.

Partie 4
Soit le programme C de la résolution du problème de tour de Hanoi suivant :

#include<stdio.h>
#include<math.h>

void hanoi( int ndisque,char source,char intermediaire,char destination)


{
if ( ndisque == 1)
printf("Deplacer le disque de la tour ((%c)) a la tour ((%c)) \n", source, destination);
else
{
hanoi ( ndisque - 1 , source , destination , intermediaire);
hanoi( 1 , source , intermediaire , destination );
hanoi ( ndisque - 1 ,intermediaire , source , destination );
}
}

int main()
{
int Nombre_Disque, Deplacement;
printf("Entrer le nombre de disque a déplacer: \n");
scanf("%d",&Nombre_Disque);
Deplacement=pow(2,Nombre_Disque)-1;
printf("Il faut %d deplacement pour deplacer les %d disques de la tour A vers la tour c en
utilisant la tour B. \n",Deplacement,Nombre_Disque);
hanoi(Nombre_Disque,'A','B','C');
printf("\n");
return 0;
}

1. Ecrire puis exécuter du programme C précédant. N’hésiter pas a corrigé le code s’il existe une erreur.
2. Traduire ce programme C en code assembleur MIPS.
3. Exécuter le code assembleur sur le simulateur QtSPIM.

Votre rapport de TP doit être organisé comme suit :


1- Page de garde,
2- Sommaire,
3- Introduction,
4- Parite1 : Gestion des flottants dans le processeur MIPS R3000.
a. Format des nombres flottants utilisés.
b. Architecture du co-processeur de gestion des flottants
c. Registres utilisés.
d. Instructions arithmétiques sur les nombres flottants.
e. Instructions d’accès à la mémoire de gestion des flottants.
f. Types et méthodes de gestion des exceptions des nombres flottants.
g. Exemple de programme MIPS R3000 pour le calcul d’un problème réel sur les nombres réels.
5- Parite2 : Explication de la méthode d’utilisation de la pile avec MIPS.
a. Utilisation de la pile avec MIPS.
b. Exemple de code Assembleur pour l’utilisation de la pile.
6-
7- Partie 3 : Traduction d’un programme C de tri de tableau vers un code Assembleur MIPS R3000.
a. Exécution du code C, vérification et correction du programme s’il existe une erreur.
b. Etapes de traduction du programme C vers le code Assembleur MIPS.
c. Exécution du code MIPS sur le simulateur QtSPIM.
8- Partie 4 : Traduction d’un programme C traitant le problème de tour de Hanoi en Assembleur MIPS.
a. Explication du problème de tour de Hanoi.
b. Explication de programme C fourni de la résolution de problème de tour de Hanoi.
2|Page
c. Déroulement manuel du programme C fourni avec (Nombre Disque = 3).
d. Etapes de transformation du code C en code Assembleur MIPS.
e. Explication de la méthode d’utilisation de la pile.
f. Exemple d’exécution du code assembleur sur le simulateur QtSPIM .
9- Conclusion.
10- Bibliographie.

Remarques d’ordre général :


1- Le travail doit être réalisé au maximum en trinômes, (Vous gardez la même configuration que le TP1).
2- Chaque partie du travail est notée.
3- Toute copiée-collée d’une phrase ou code depuis internet ou depuis un autre trinôme, donnera la note « 0 » sur la partie
concernée, (Par exemple, une copie collée sur l’explication du problème de tour de Hanoi sur internet engendra la note
« 0 » dans cette partie). Il faut réaliser des résumés de ce que vous avez compris avec vous propres mots.
4- L’absence d’une partie du code ou rapport engendra la note « 0 » sur cette partie.
5- Dans le cas de copier-coller entre deux trinômes, alors les deux trinômes seront sanctionnés par la règle 3.
6- La taille du texte utilisée est 12 pt.

3|Page

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy