Vous êtes sur la page 1sur 11

Module ARCHI 1 : Architecture des 0rdinateurs UN Fiche de TD N° 6

Mémoires & Programmation en Assembleur sous MIASM

Schéma Bloc d'une RAM de 210 O=1KOctets=1KBytes

CS Chip Select: sélection de boitier active à l'état 0


A9 CS
A8 D7
A7 D6
Bits A6 D5 Bits de données
D'Adresse A5 D4
A4 D3
A3 D2
A2 D1
A1 D0
A0
R/ W

R: Read: lecture R/W=1 ; W: Write: écriture R/W=0

Pour écrire un octet dans cette RAM, il faut d'abord la sélectionner la mémoire :
CS = 0
Ensuite présenter la donnée aux entrées Di et l'adresse aux entrées Ai
Enfin activer le signal d'écriture : R / W = 0

Pour lire un octet de cette RAM, il faut d'abord la sélectionner:


CS = 0, ensuite présenter l'adresse aux entrées Ai
Enfin activer le signal de lecture: R/W = 1
On récupère la donnée en sortie à travers les Di
Si la mémoire n'est pas sollicitée CS=1 permet de déconnecter les lignes de données si
elles sont reliées à un BUS de données.

Exercice N ° 1: But: augmenter la taille ou capacité de la mémoire RAM.


Proposez un schéma d'une mémoire RAM de capacité 4 K Octets à l'aide de blocs
mémoires RAM de capacité 1 K Octets, d'un décodeur binaire 2vers 4 et de portes
logiques.

Exercice N ° 2: But: augmenter la longueur du mot mémoire RAM:


Proposez un schéma d'une mémoire RAM de capacité 1 K mots de 32Bits à l'aide de
blocs mémoires RAM de capacité 1 K mots de 16 Bits.

Exercice N ° 3:But: augmenter la capacité de la RAM et la longueur du mot mémoire


Proposez un schéma d'une mémoire RAM de capacité 4 K Mots de 32 Bits à l'aide de
blocs mémoires RAM de capacité 1 K Octets, d'un décodeur binaire 2 vers 4 et de
portes logiques.
Exercice N ° 4: Soit le schéma bloc d'une mémoire RAM suivant:

0 A9 CS
A8
A7
A6
A5
A4 D
A3
A2
A1
A0
R /W

Quelle la longueur du mot de cette RAM? Quel est son espace utilisable ou
adressable?
Exercice N ° 5: Traduire en Assembleur l'algorithme suivant:

Algorithme Produit ;
Variables A , B , P : Entiers;
Début
Lire ( A, B) ;
P 0;
K 0;
Tant_Que A > 0 Faire Début
P P+B;
A A – 1;
Fin;
Afficher ( P ) ;
Fin.
On suppose que A > = 0. Et B >=0.

Exercice N°6 a) Déroulez à la main le programme ci-dessous en déduire ce qu'il fait ?

ORG X ' 100' b) Traduire en langage machine


A RM 1 l'instruction:
B RM 1 RNG A
Debut ENT 1 c) Désassembler l'instruction suivante:
RNG A
ENT 1 1010010100000000
RNG B 0000000101101111
ADM A
RNG B
SM A
RNG A
CHM B
SM A
RNG B
STOP
Solution:

Exercice 1:

On détermine d'abord le nombre de boitiers ensuite on les interconnecte


de façon judicieuse.
La capacité est de 4Kilo Octets : 4K0/ 1KO =4 boitiers de RAM 1KO.
C= 4K = 22 * 210 = 212
pour adresser chacun des octets il nous faut:12 Bits:
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

Entrées du décodeur Vers la RAM


2 vers 4 et les 4 Sorties
vont attaquer les entrées CS de chaque RAM
quant aux Bits de données puisqu'on n'a pas augmenter leur longueur
chaque RAM reçoit 8 Bits de Données .
Les entrées R/W sont attaquées par le même signal de lecture- écriture.
Espace Signal de Lecture
D'adresses A9 CS Ecriture
A8 D7
111111111111 A7 D6
A6 D5
A5 D4
A4 D3
A3 D2
A2 D1
A1 D0
110000000000 A0
R /W

101111111111 A9 CS
A8 D7
A7 D6
A6 D5
A5 D4
A4 D3
A3 D2
100000000000 A2 D1
A1 D0
A0
S3 R /W
E1 S2
E0 S1
S0

A9 CS
A8 D7
A11A10 A7 D6
A6 D5
A5 D4
A4 D3
011111111111 A3 D2
A2 D1
A1 D0
A0
R /W

010000000000
A9 CS
A8 D7
A7 D6
A6 D5
A5 D4
001111111111 A4 D3
A3 D2
A2 D1
A1 D0
A0
R /W

000000000000
Solution Exercice 2:

On détermine d'abord le nombre de boitiers ensuite on les interconnecte


de façon judicieuse.
La capacité est de 1Kilo mots de 32 Bits :
1K 32 Bits/ 1K 16 Bits= 2 boitiers de RAM 1K 16 Bits.
Pour adresser chacun des mots, il nous faut:10 Bits, les 2 boitiers sont
sélectionnés par le même signal et adressés par la même adresse:
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

Vers les 2 RAM


quant aux Bits de données: Les 16 bits de faible poids dans une RAM
et 16 Bits de fort poids dans l'autre RAM .
Les entrées R/W sont attaquées par le même signal de lecture- écriture.

CS CS
D15 DB31 D15 DB15
D14 DB30 D14 DB14
AB9 A9 D13 DB29 A9 D13 DB13
A8 D12 DB28 A8 D12 DB12
A7 D11 DB27 A7 D11 DB11
A6 D10 DB26 A6 D10 DB10
A5 D9 DB25 A5 D9 DB9
A4 D8 DB24 A4 D8 DB8
A3 D7 DB23 A3 D7 DB7
A2 D6 DB22 A2 D6 DB6
A1 D5 DB21 A1 D5 DB5
AB0 A0 D4 DB20 A0 D4 DB4
D3 DB19 D3 DB3
D2 DB18 D2 DB2
D1 DB17 D1 DB1
D0 DB16 D0 DB0
R /W R /W

Signal de Lecture-Ecriture(bus de commandes)


Solution Exercice 3:

On détermine d'abord le nombre de boitiers ensuite on les interconnecte


de façon judicieuse.
La capacité est de 4Kilo mots de 32 Bits :
4K 32 Bits / 1K 8Bits =16 boitiers de RAM 1KO.
C= 4K = 2 * 210 = 212
2

pour adresser chacun des octets il nous faut:12 Bits:


A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

Entrées du décodeur Vers la RAM


2 vers 4 et les 4 Sorties
vont attaquer les entrées CS de chaque rangée de 4 RAMs
quant aux Bits de données puisqu'on a augmenté leur longueur chaque
RAM reçoit 8 Bits de Données .
Les entrées R/W sont attaquées par le même signal de lecture- écriture.
CS CS CS CS
A9 D7 DB31 A9 D7 DB23 A9 D7 DB15 A9 D7 DB7
… … … … … … … …
A4 D4 A4 D4 A4 D4 A4 D4
… … … … … … … …
A0 D0 A0 D0 A0 D0 A0 D0
DB24 DB16 DB8 DB0
R/W R/W R/W R/W

S3
S2

DB
CS CS CS CS
A11 E0
A9 D7 A9 D7 A9 D7 A9 D7
… … … … … … … …
E1 A4 D4 A4 D4 A4 D4 A4 D4
A10 … … … … … … … …
A0 D0 A0 D0 A0 D0 A0 D0

S1 R/W R/W R/W R/W

S0

CS CS CS CS
A9 D7 A9 D7 A9 D7 A9 D7
… … … … … … … …
A4 D4 A4 D4 A4 D4 A4 D4
… … … … … … … …
A0 D0 A0 D0 A0 D0 A0 D0

R/W R/W R/W R/W

CS CS CS CS
A9 D7 A9 D7 A9 D7 A9 D7
… … … … … … … …
A4 D4 A4 D4 A4 D4 A4 D4
… … … … … … … …
A0 D0 A0 D0 A0 D0 A0 D0

R/W R/W R/W R/W

Signal de Lecture-Ecriture
Solution Exercice 4

0 A9 CS
A8
A7
A6
A5
A4 D
A3
A2
A1
A0
R /W

La longueur du mot est de 1 Bit;


l'espace adressable: [ 0, 28 -1 ] en décimal= (0000000000, 0011111111)2

Solution Exercice 5
ORG X ' 100'
A RM 1
B RM 1
Debut ENT 1
RNG A
ENT 1
RNG B
CHI 0
RGM P
RGM K
CHM A
Boucle BCV , 3 Ecrire
CHM P
ADM B
RGM P
CHM A
SI 1
RGM A
BCV,0 Boucle
RGM P
SOR 2
STOP
Solution Exercice 6 On prend A=15 B =13

ORG X ' 100'


A RM 1
B RM 1
Debut ENT 1
RNG A
ENT 1
RNG B
ADM A (ACC) = A+B= 15+13=28
RNG B (B) = A+B = 28
SM A (ACC) = 28–A= 28-15=13
RNG A (A)= 13
CHM B (ACC) = 28
SM A (ACC)= 28-13=15
RNG B (B)= 15
STOP

a) Avant exécution A= 15 & B= 13 ; après exécution A= 13 & B= 15


Conclusion: ce programme permute A et B
( Permutation ou échange des contenus De A et B)

b) Traduire en langage machine l'instruction: RNG A

B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0


MAD FL/C COP C1 C2

MAD: mode d'adressage ; 00 Direct ; 01: indirect ; 10: immédiat ; 00=?


FLC: format de l'instruction: L:Long=1 C: Court:0
COP: code opération Sur 5 Bits
C1: désigne le numéro de l'indicateur à tester pour les instructions conditionnelles
Il peut contenir 1 débordement ,2 retenue ,3 zéro, 4 négatif
C2: désigne le numéro de périphérique pour les instructions d'entrée-sortie
1: clavier ; 2: écran ….

B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0


ADR opérande

Propre aux instructions au format long:


ADR opérante: adresse d'emplacement de la donnée en mémoire sur 11 Bits
Cas où l'adressage est immédiat les bits de 0 à 15 contiennent la donnée qui figure
dans la partie adresse de l'instruction.
Mode adresse Direct:00
Code de RNG = (20)16 sur 6 Bits 10 0000 , Format Long = 1 , C1, C2 à 0
Adresse de A =(100)16 = 001 0000 0000 sur 11 Bits

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
c) Désassembler l'instruction suivante: 1010010100000000
0000000101101111

Premier Mot
B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0
1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0
Deuxième mot
B15 B14 B13 B12 B11 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 B0
0 0 0 0 0 0 0 1 0 1 1 0 1 1 1 1
Ce code correspond à l'instruction: SI 367
Car bit 15 14 = 10 adressage immédiat 1ier mot
Bit 13 = 1 format long 1ier mot
Bit 12 … BIT 8 = 10 0 101= (25)16 Code de SI ier
1 mot
Bit 15…Bit 0 = 0000000101101111 valeur de la donnée 2e mot
(0000000101101111)2 = ( 256+64+32+15=367 )10

Exercice supplémentaire :

Assemblez les instructions suivante: @ A = (45)10 @FIN =X'157'


ENT 1 10 000001 000 00001 format court
SOR 2 10 000010 000 00010 format court

RNG *A 01 100000 000 00000 format long


00000 00000101101
CHM A 00 100010 000 00000 format long
00000 00000101101

ADI X' F00F' 10 100011 000 00000 format long


1111 0000 0000 1111
BCV,4 FIN 00 101011 100 00000 format long
0000 0 001 0101 0111
BCV,0 FIN 00 101011 000 00000 format long
0000 0 001 0101 0111
BCF, 3 FIN 00 101100 011 00000 format long
0000 0 001 0101 0111

Vous aimerez peut-être aussi