Vous êtes sur la page 1sur 7

1

Chapitre 9 : La machine MIASM


Introduction .
Architecture gnrale de MIASM.
Format dune instruction et modes dadressage de MIASM
Jeu dinstructions de MIASM .
Programmation en langage MIASM .
2
Introduction
Le but de ce chapitre est de montrer le fonctionnement complet d'un
ordinateur.
Nous allons travailler sur une machine fictive ( pas relle ) dite
"MACHINE PEDAGOGIQUE", que nous appellerons "MIASM".
Cette machine est trs simplifie, et n'est, donc pas une machine
relle.
Cependant elle possde tous les composants et les caractristiques
d'un vritable ordinateur.
3
1. Structure gnrale de MIASM
La taille de la mmoire est de 2048 mots bus dadresse sur 11 bits
La taille dun mot est de 16 bits bus de donnes sur 16 bits
La taille de laccumulateur , le RIM et le RI est de 16 bits
La taille du CO et de RAM est de 11 bits
La machine possde 4 indicateurs ( flags )
4
Les indicateurs
L'indicateur N1 : est mis 1 si un dbordement de capacit se
produit dans une opration , il est mis 0 dans le cas normal.
L'indicateur N2 : est mis 1 si opration dgage une retenue,
zro sinon.
L'indicateur N3 : est mis 1 si le contenu de laccumulateur est
gal zro. Il est mis zro si le contenu de l'accu est non nul.
L'indicateur N4 : est mis 1 si le contenu de l'accu est Ngatif, il
est zro sinon.
5
2. Format dune instruction
MIASM est une machine une adresse.
Les instructions doivent tre reprsentes en binaire sur un ou plusieurs
mots.
La machine MIASM dispose de deux types de format d'instructions
Les instructions format LONG:Ce type dinstruction occupe deux mots
mmoire :
Le premier mot comporte le code opration, le type
dadressage,.
le deuxime mot comporte ladresse de loprande.
Les instructions format COURT: Elles occupent un seul mot (comporte
le code opration, le type dadressage,.). Ce format
est utilis par les instructions qui ne comportant pas une partie
adresse( Exemple : entres/sorties ).
Partie donnes ( variables )
}
1000000111111111
1000000111000111
1000000111111111
1000000111000111
1000110111000111
1000000111111111
1000000111000111
1001100111111111
1000000111111111
1000000111100011
1001100111111111
1000000111100011
1001100111111111
1000011111111111
}
}
}
}
Instruction sur 2 mot ( format long )
Instruction sur 1 mot ( format court )
7
Format dune instruction
2.1 Le premier mot
Ce mot est commun aux deux types d'instructions.
Il tient sur 16 bits et il est divis en plusieurs champs.
Les bits 15 et 14: Servent indiquer le type d'adressage:
00 : adressage direct .
01 : adressage indirect.
10 : adressage immdiat.
11 : Configuration interdite.
8
Les bits 13 8: donnent (sur 6 bits) Le CODE OPERATION effectuer.
Le bit 13, premier bit du code opration, indique le format de l'instruction :
bit 13=0 ==> instruction format court.
bit 13=1 ==> instruction format long.
Les bits 7 5: Dfinissent une zone ou champ appel C1 dont l'utilisation
dpend de l'opration.
Les bits 4 0: Dfinissent une zone ou champ appel C2 dont l'utilisation
dpend de l'opration.
9
Format dune instruction
2.2. Le deuxime mot
Propre aux instructions en format long, il contient la partie adresse
de l'instruction. Cette adresse tient sur 11 bits (bit 0 au bit 10)
10
Exemple1 : droulement de linstruction daddition en mode immdiat
ACC(ACC)+ Valeur sur MIASM
Phase 1 : ( rechercher linstruction traiter )
Mettre le contenu du CO dans le registre RAM RAM(CO)
Commande de lecture partir de la mmoire
Transfert du contenu du RIM dans le registre RI RI(RIM)
Analyse et dcodage
Phase 2 : (traitement )
CO (CO )+ 1
Transfert de l adresse du 2
eme
mot dans le registre RAM RAM(CO)
Commande de lecture partir de la mmoire
Transfert de loprande vers lUAL UAL (RIM)
Commande de lexcution de lopration ( addition )
Phase 3 : ( passer linstruction suivante )
CO (CO )+ 1
11
Exemple 2 : droulement de linstruction daddition en mode direct ACC(ACC)+
(ADR) sur MIASM
Phase 1 : ( rechercher linstruction traiter )
Mettre le contenu du CO dans le registre RAM RAM(CO)
Commande de lecture partir de la mmoire
Transfert du contenu du RIM dans le registre RI RI(RIM)
Analyse et dcodage
Phase 2 : (traitement )
CO (CO )+ 1
Transfert de l adresse du 2
eme
mot dans le registre RAM RAM (CO)
Commande de lecture partir de la mmoire
Transfert de ladresse de loprande vers le RAM RAM (RIM)
Commande de lecture partir de la mmoire
Transfert du contenu du RIM ( loprande )vers lUAL UAL (RIM)
Commande de lexcution de lopration ( addition )
Phase 3 : ( passer linstruction suivante )
CO (CO )+ 1
12
Exemple1 : droulement de linstruction au format court sur MIASM ( exemple
entres /sorties ).
Phase 1 : ( rechercher linstruction traiter )
Mettre le contenu du CO dans le registre RAM RAM(CO)
Commande de lecture partir de la mmoire
Transfert du contenu du RIM dans le registre RI RI(RIM)
Analyse et dcodage
Phase 2 : (traitement )
Commande de lexcution de lopration
Phase 3 : ( passer linstruction suivante )
CO (CO )+ 1
13
3. LE JEU D'INSTRUCTIONS DE MIASM
Pour pouvoir faire des programmes excutables sur la machine
MIASM, on dispose d'un certain nombre d'instructions qui forment le
langage de la machine.
Ce langage est un langage ASSEMBLEUR.
1110000011101011
0010110011101011
0010000011101011
1110000011101011
1100000011101011
1000000011101011
1110000011101011
Langage assembleur
Langage machine
ORG X100
X RM 1
Y RC 10
DEBUT ENT 01
ADM Y
RGM X
SOR 02
STOP
END DEBUT
14
3.1 Les instructions d'change entre
l'accumulateur et la mmoire centrale
Instruction : RANGEMENT ( RGM)
Effet : Le contenu de l'accumulateur est crit en mmoire
centrale l'adresse figurant dans l'instruction. Le contenu de
l'accumulateur n'est pas modifi.
Format : Long
Adressage : Direct ou Indirect
Exemple :
RGM A ( mode direct )
RGM *B ( mode indirect )
15
Instruction : CHARGEMENT IMMEDIAT ( CHI )
Effet : La partie adresse de l'instruction est charge dans
l'accumulateur. Le contenu prcdant de l'accumulateur est dtruit .
Format : Long
Adressage : Immdiat
Les indicateurs 3 et 4 de l'UAL sont positionns selon l'information
charge.
Exemple :
CHI 12
CHI 0
16
Instruction : CHARGEMENT MOT ( CHM )
Effet : Le contenu du mot mmoire rfrenc par la partie
adresse de l'instruction est charg dans l'accumulateur. Le contenu
prcdant de l'accumulateur est dtruit.
Format : Long
Adressage : Direct ou Indirect
Les indicateurs 3 et 4 de l'UAL sont positionns selon l'information
charge.
Exemple :
CHM A ( mode direct )
CHM *B ( mode indirect )
17
3.2 Instructions d'oprations arithmtiques
Instruction : ADDITION/SOUSTRACTION IMMEDIATE (ADI / SI )
Effet : La partie adresse de l'instruction est additionne/soustraite
au/du contenu de l'accumulateur. Le rsultat est dans l'accumulateur
Format : Long
Adressage : Immdiat
Observations : Les indicateurs 1,2,3 et 4 de l'UAL sont
positionns selon l'information charge.
Exemple :
ADI 12
SI 13
18
Instruction : ADDITION/SOUSTRACTION MOT ( ADM / SM )
Effet : Le contenu du mot mmoire rfrenc par la partie
adresse de l'instruction est additionn/soustrait au/du contenu de
l'accumulateur. Le rsultat est dans l'accumulateur.
Format : Long
Adressage : Direct ou Indirect
Observations : Les indicateurs 1,2,3 et 4 de l'UAL sont
positionns selon l'information charge.
Exemple :
ADM A
SM *B
19
3.3 Instructions d'oprations logiques
Instruction : ET MOT
Effet : Un ET logique est effectu entre le contenu de
l'accumulateur et le contenu du mot adresse par la partie adresse de
l'instruction. Le rsultat est dans l'accumulateur.
Format : Long
Adressage : Direct ou Indirect
Observations : Les indicateurs 3 et 4 de l'UAL sont positionns
selon le rsultat trouv.
Exemple :
ET A
ET *B
20
Instruction : OU/OUX MOT
Effet : Un OU/OUX logique est effectu entre le contenu de
l'accumulateur et le contenu du mot adress par la partie adresse
de l'instruction. Le rsultat est dans l'accumulateur.
Format : Long
Adressage : Direct ou Indirect
Observations : Les indicateurs 3 et 4 de l'UAL sont positionns
selon le rsultat trouv.
Exemple :
OU A
OU *B
21
Instruction : NON MOT
Effet : Tous les bits du contenu de l'accumulateur sont
inverses.
Format : Long
Adressage : Direct ou Indirect
Observations : Les indicateurs 3 et 4 de l'UAL sont positionns
selon le rsultat trouv.
22
3.4 Instructions d'entres/sorties
Instruction : ENTREE DE DONNEES ENT
Effet : Une donne est entre partir d'un priphrique dans
l'accumulateur.
Format : Court
Adressage : Immdiat
Observations : - Le champ C1 n'est pas utilis
Le champ C2 donne le numro du priphrique ( le priphrique
01 indique le clavier )
Exemple :
ENT 01
RGM A
23
Instruction : SORTIE DE DONNEES SOR
Effet : Une donne est sortie de l'accumulateur vers un
priphrique.
Format : Court
Adressage : Immdiat.
Observations : - Le champ C1 n'est pas utilis
Le champ C2 donne le numro du priphrique ( le priphrique
02 indique lecran )
Exemple
CHM A
SOR 02
24
3.5 Instructions d'arrt du calculateur
Instruction: ARRET DU CALCULATEUR ( STOP )
Effet : Provoque un arrt du programme en cours
d'excution.
Format : Court
Adressage : Immdiat
25 26
4. Structure gnrale dun programme en
langage MIASM
Un programme crit afin dtre excuter sur MIASM est compos de deux
partie :
partie donnes
et partie instruction
Exemple :
ORG X100
X RM 1
Y RC 10
DEBUT ENT 01
ADM Y
RGM X
SOR 02
STOP
END DEBUT
Adresse dbut du programme en
mmoire
Rservation dun mot mmoire
Rserver un mot mmoire et
linitialiser avec la valeur 10
Les instructions
27
4.1 Partie donnes
Pour les donnes on utilise les deux directives RM et RC :
RM permet de rserver une zone mmoire de N mots mmoire.
RC permet de rserver une zone mmoire avec initialisation.

Exemple
ORG 100
X RM 1 rserver un seul mot
Y RC 23 rserver un mot et linitialiser par la valeur 23
Z RM 4 rserver 4 mots mmoire
T RC XAB X10 X23 rserver 3 mots mmoire initialiss avec les valeurs
hexadcimales AB , 10 et 23
28
4.2 Partie instructions
La partie instruction contient lensemble des instructions ( dans
lordre ) qui dtermine la logique du programme.
Dans cette partie on peut trouver les instructions de :
des instruction arithmtique ,
logique ,
entres /sorties ,

.
29
Exemple 1
Exemple :
Soit lalgorithme suivant :
Lire (B)
Lire (C)
A(B+C )-123
crire (A )
ORG 100
A RM 1
B RM 1
C RM 1
DEBUT ENT 01
RGM B
ENT 01
RGM C
CHM B
ADM C
SI 123
RGM A
SOR 02
STOP
END DEBUT
30
Exercice : Quel est le contenu du Mot " RESU " la fin
de l'excution 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
31
5. Instructions de branchement
Dans un programme les instructions sont excutes dans lordre ,
gnralement squentielles .
Dans quelques cas les instructions excutes aprs la vrification dune
condition .
Dans ce cas la prochaine instruction excuter dpend de la valeur de la
condition pas forcment la prochaine instruction.
Si la condition nest pas vrifie alors il faut faire un branchement ( saut
vers une autre instruction ).
Le deuxime mot de linstruction contient ladresse de branchement (
adresse de linstruction excuter si la condition nest pas vrifie )
Pour tester la condition on utilise les indicateurs.
32
Exemple : droulement de linstruction de branchement si la condition est vrifie
( exemple tester lindicateur 4 sil est gale 1)
Phase 1 : ( rechercher linstruction traiter )
Mettre le contenu du CO dans le registre RAM RAM(CO)
Commande de lecture partir de la mmoire
Transfert du contenu du RIM dans le registre RI RI(RIM)
Analyse et dcodage
Si condition vrifie ( valeur de lindicateur 4 est gale 1 )
Phase 2 : (traitement )
CO (CO )+ 1
Transfert de l adresse du 2
eme
mot dans le registre RAM RAM (CO)
Commande de lecture partir de la mmoire
Transfert de ladresse de linstruction vers le CO CO (RIM)
Si condition non vrifie
Phase 3 : ( passer linstruction suivante )
CO (CO )+ 1
33
Instructions de branchement
Instruction : BRANCHEMENT SI CONDITION VERIFIEE ( BCV,ind )
Effet : Les trois bits du champ C1 donnent un numro de condition de 0
4 tester :
Si le nde la condition est 0 : excution d'un bran chement l'adresse
effective AE.
Si le nde la condition est 1.2.3 ou 4 : test de l' indicateur correspondant
et excution d'un branchement l'adresse effective AE si l'indicateur est
1. Si l'indicateur est 0, poursuite en squence ( non branchement ).
Exemple
BCV,4 branchement si lindicateur 4 est 1 ( le rsultat est ngative )
BCV,3 branchement si indicateur 3 est 1 ( le rsultat est nul )
34
Instruction : BRANCHEMENT SI CONDITION FAUSSE ( BCF,ind )
Effet : Les trois bits du champ C1 donnent un numro de condition
de 0 4 tester.
Si le nde la condition est 0 : excution d'un bran chement l'adresse
effective AE.
Si le nde la condition est 1.2.3 ou 4 : test de l' indicateur correspondant
et excution d'un branchement l'adresse effective AE si l'indicateur est
0. Si l'indicateur est 1 poursuite en squence ( non branchement ).
Exemple
BCF,4 branchement si lindicateur 4 est 0 ( le rsultat nest pad ngative )
BCF,3 branchement si indicateur 3 est 0 ( le rsultat nest pas nul )
35
Exemple
CHM A
SM B
BCV,4 suite
CHM A
ADM B
RGM Z
Suite CHM A
ADI 1
RGM A
Exemple
Si A > B alors ZA+B;
AA+1;
Exemple
Si (A - B) > 0 alors ZA+B;
AA+1;
En langage
MIASM :
36
La forme SI SINON
Si cond alors Action 1
sinon Action 2
valuation de la condition
Si condition est fausse branchement A2
Excuter Action 1
Branchement inconditionnelle suite
A2 : excuter Action 2
37
Exemple
Si A > B alors Max A
Sinon Max B
CHM A
SM B
BCV,4 A2
CHM A
RGM MAX
BCV,0 suite
A2 CHM B
RGM MAX
Suite CHM MAX
SOR 02
Si ( A B ) > 0 alors Max A
Sinon Max B
En MAISM

38
Condition compose
Si ( A > B ) et (A < C ) alors
RESC
CHM A
SM B
BCV,4 suite
CHM A
SM C
BCF,4 suite
CHM C
RGM RES
suite
39
Condition compose
Si A > B ou A < C alors
ResB+C
CHM A
SM B
BCF,4 action
CHM A
SM C
BCF,4 suite
Action CHM B
ADM C
RGM RES
Suite
40
Forme Tant que
Exemple
res 1+2+3+4+5+6+7+8+9
K1
RES0
Tant que K< 10 faire
Dbut
RESRES + K;
KK+1;
End
Org X100
K RM 1
RES RM 1
Debut CHI 0
RGM RES
CHI 1
RGM K
BOUCLE SI 10
BCF,4 FIN
CHM RES
ADM K
RGM RES
CHM K
ADI 1
RGM K
BCV,0 BOUCLE
FIN CHM RES
SOR 02
STOP
END Debut
41
Forme rpter
Exemple
res 1+2+3+4+5+6+7+8+9
K1
RES0
Rpter
RESRES + K;
KK+1;
Jusqu K=10
Org X100
K RM 1
RES RM 1
Debut CHI 0
RGM RES
CHI 1
RGM K
BOUCLE CHM RES
ADM K
RGM RES
CHM K
ADI 1
RGM K
SI 10
BCV,3 FIN
BCV,0 BOUCLE
FIN CHM RES
SOR 02
STOP
END Debut