Vous êtes sur la page 1sur 4

TD13 - STRM1- Machine pédagogique 1/5

Institut National de formation TD N° 13 de Structure Machine


en Informatique 1 ère Année

1./ Dérouler sur la machine MIASM, les instructions suivantes:


a./ ADI Val b) ADM Adr c./ ADM *Adr d./ RGM Adr
e./ BCV,0 Adr f./ BCV,2 *Adr g./ ET *Adr h./ BCF,4 Adr
2*./ Quel est le contenu du Mot " RESU " à la fin de l'exécution du programme suivant:
ORG 0
DON RC X ' ABCD '
RESU RM 1
DEBUT CHI X ' F00F '
ET DON
ADI X ' 2FFD '
RGM RESU
CHI X ' 0FF0 '
ET DON
ADI X ' 00F0 '
OU RESU
RGM RESU
END DEBUT
3./ Traduire les algorithmes suivants en Assembleur MIASM.
a ./ R A + B - 5;
b ./ Si ALPHA >= BETA alors RESULT <--- ALPHA - BETA;
c ./ RESULT MAX ( ALPHA, BETA );
d ./ RESULT 1 + 2 + 3 + ... + 9;
e./ Si ( A > = B ) OU ( A < C ) Alors Result <--- B + C;
Suite : ....
4./ Traduire l’Algorithme suivant en langage MIASM.
A <-- 4 ; B <-- 3 ; Result <--- 0 ; Cpt <--- 0 ;
Répéter Result <--- Result + A ;
Cpt <-- Cpt + 1 ;
jusqu’à Cpt = B
5*./ Ecrire l'algorithme et le programme MIASM qui permet de faire la division entière de deux
nombres entiers A et B.
6*./ Ecrire l'algorithme et le programme MIASM implanté à l'adresse Hexa (100)16 en mémoire qui
permet le calcul de la factorielle d’un nombre entier N qui sera lu.
Remarque : - On supposera que nous disposons d’une instruction de multiplication:
MPM Adr qui permet Acc (Acc)* (Adr)
- Prévoir les différents tests.
7*./ Ecrire le programme MIASM, implanté à l'adresse Hexa (100)16 en mémoire, qui range à
l'adresse (102)16 un mot dont le contenu est composé des mots (100)16 et (101)16.

- STRM1 - A.Balla
TD13 - STRM1- Machine pédagogique 2/5

8./ Soit le programme suivant écrit en langage MIASM:


ORG X'100'
MOT1 RM 1 Remarque:
MOT2 RM 1 Le programme lit les valeurs suivantes:
DEBUT ENT 01 1ère Donnée lue: (30)10
RGM MOT1 2ème Donnée lue : (9)10
ENT 01
A RGM MOT2 Questions:
B SM MOT1 a./ Etudiez le programme (Donnez l'algorithme) et dites
BCV,3 FIN ce qu'il réalise
BCF,4 A b./ Donnez la valeur de l'information à sortir .
CHM MOT1 c./ Compléter le programme de sorte à ne pas
SM MOT2 prendre en compte les valeurs nulles.
RGM MOT1
CHM MOT2
BCV,0 B
FIN CHM MOT1
SOR 02
STOP
END DEBUT

9*./ Soit le programme suivant écrit en langage MIASM:


ORG X'100'
T1 RC X'000F' X'00F0' X'0F00' X'F000'
INF RC X'BCD0' X'AB0D' X'D9AC' X'9ACD'
AT1 RC T1
AINF RC INF
CPT RC 4
RESULT RC 0
DEBUT CHM *AINF
ET *AT1
OU RESULT
ADI 2 Questions:
RGM RESULT
CHM AINF a./ Etudier le programme (contenu de
ADI 1 l’Accumulateur, algorithme).
RGM AINF
CHM AT1 b./ Donner la valeur de l'information à sortir.
ADI 1
RGM AT1
CHM CPT
SI 1
RGM CPT
BCF,3 DEBUT
CHM RESULT
SOR 02
STOP
END DEBUT
10*./ Soit un vecteur T1 constitué de 10 mots. On commence par lire les valeurs entières de T1

- STRM1 - A.Balla
TD13 - STRM1- Machine pédagogique 3/5

puis on cherche le minimum « Min » de T1.


Questions: Donner l'algorithme, et ecrire le programme correspondant en Langage MIASM
implanté à l’adresse Hexadécimal ( 100 )16.
11*./ On souhaite utiliser un autre mode d'adressage (bit 15 bit 14 = 11). Pour cela, on rajoute un
registre appelé X, au chemin de donnée de la machine MIASM, de sorte à avoir le mode
d'adressage suivant: Adresse de l'Opérande A.E = ( X ).
Questions: a./ A quel type de format doit correspondre l'instruction incluant ce mode d'adressage
ADM X.
b./ Dites quelles sont les liaisons (connexions) à rajouter pour que l'on puisse dérouler
l'instruction : ADM X effet : ACC <--- ( ACC) + (( X ))
12*/ Sur la machine MIASM , les branchements conditionnels se font après tests d’indicateurs.
A/ Dites comment se fait le branchement à une adresse si le contenu de l’accumulateur est >0 et
donner les instructions MIASM permettant de réaliser la forme itérative suivante :
Repeter
Lire(N) ;
Jusqu'à (N>0) ;
B/ On apporte les modifications à la machine MIASM en ajoutant 4 registres R1, R2, R3, R4 (de
16 bits chacun) et en modifiant les entrées de l’UAL (schéma de la figure 1).

figure 1
Cette machine nous permet d’avoir des opérations entre un registre de travail Ri et un mot mémoire
ou une valeur immédiate.
a./ Donner la nouvelle syntaxe de l’instruction, en utilisant une partie du champ C2 pour
désigner le registre Ri.
b./ Dérouler l’instruction d’addition du contenu d’un mot mémoire avec le contenu de Ri, le
résultat sera dans l’accumulateur.
c./ Définir une nouvelle instruction de transfert de registre à registre (Ri Æ Rj) en donnant le
format ainsi que la syntaxe de cette instruction.
d./ Dérouler l’instruction de transfert définie précédemment.
e./ Ecrire un programme sur cette machine qui réalise la permutation de 10 éléments d’un tableau
T1, en utilisant un des registres de travail comme intermédiaire.
Avant permutation Après permutation
1er élément 10ème élément
2ème élément 9ème élément
… …
… …
9ème élément 2ème élément
10ème élément 1er élément
figure 2
f./ Dites quel est l’intérêt d’avoir de tels registres par rapport à la machine vu en cours.

- STRM1 - A.Balla
TD13 - STRM1- Machine pédagogique 4/5

Rappel MIASM:
Indicateurs de Conditions: Le fonctionnement de l'UAL positionne 4 indicateurs selon le résultat
de l'opération. Ces indicateurs peuvent être utilisés dans les instructions de branchements.
l'indicateur 1 - est mis à 1 s'il y a un débordement
- est mis à 0 sinon

l'indicateur 2 - est mis à 1 si l'opération dégage une retenue


- est mis à 0 sinon

l'indicateur 3 - est mis à 1 si ( ACCUmulateur ) = 0


- est mis à 0 sinon ( <> 0 )

l'indicateur 4 - est mis à 1 si ( ACCU ) < 0


- est mis à 0 sinon

Instruction Syntaxe Effet


Branchement si Condition Vraie BCV,Cond Adr - Si Cond = 0
alors Branchement à l'adresse sans test
d'indicateurs de conditions
- Si Cond = { 1 , 2 , 3 , 4 }
alors test des indicateurs de conditions
- Si ( Cond ) = 1 ; Branchement à
l'adresse
- Si ( Cond ) = 0 ; Continuer en séquence
Branchement si Condition Fausse BCF,Cond Adr - Si Cond = 0
alors Branchement à l'adresse sans test
d'indicateurs de conditions
- Si Cond = { 1 , 2 , 3 , 4 }
alors test des indicateurs de conditions
- Si ( Cond ) = 0 ; Branchement à l'adresse
- Si ( Cond ) = 1 ; Continuer en séquence

Quelques directives de MIASM:


1/ [ Etiq ] ORG [Arg]
Cette Directive permet de charger un programme dans une Adresse spécifiée par [Arg ].
L'Adresse est en Hexadécimal.
Exemple: ORG 100: le programme est chargé à l’adresse 100 dans la mémoire

2/ [Etiq] RC Valeur
Cette Directive réserve une constante à partir d'une adresse
Exemple: A RC 10 : A est une constante de valeur 10

3/[Etiq] RM Nombre de mots


Cette Directive réserve un nombre de mots pour la variable Etiq.
Exemple: B RM 2 : Réserve 2 mots pour la variable B.

4/ [Etiq] END Arg


Cette Directive indique la fin de la phase d’assemblage et le début d’exécution à l'adresse Arg.
Exemple: END 100

- STRM1 - A.Balla

Vous aimerez peut-être aussi