Faculté des Sciences
Département de physique
Option : Infotronique
____________________________________________________________________________________________________________
Architecture des ordinateurs – TD-TP No 3 1/3 A. Khouas
Architecture des ordinateurs
TD n°3 : Architecture des microprocesseurs
1. Questions de cours
1.1. Donner l’architecture générale d’un microprocesseur ? Donner le nom et le rôle des
différents modules d’un microprocesseur ?
1.2. C’est quoi une UAL ?
1.3. C’est quoi un séquenceur ?
1.4. Quelle est la différence entre un registre et une mémoire ?
1.5. Quelle est la différence entre un séquenceur câblé et un séquenceur microprogrammé ?
1.6. Quels sont les différents types de registres dans les microprocesseurs ? Expliquer le rôle
de chaque type de registre.
1.7. Donner les différents types de formats des instructions.
1.8. Donner les différentes façons de stockages des opérandes utilisés par les instructions.
1.9. Donner les différentes étapes d’exécution d’une instruction par un microprocesseur.
2. Les registres du 8086
En exécutant la commande r sous debug on obtient le résultat ci-dessous :
AX=FF11 BX=FF00 CX=1712 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1816 ES=1816 SS=1816 CS=1816 IP=010C NV UP EI NG NZ NA PE NC
1816:010C 8B1E00FF MOV BX,[FF00] DS:FF00=3210
2.1. Expliquer le rôle de la commande r de debug.
2.2. Donner les noms des registres d’index, des registres de segments et des registres de
pointeur ?
2.3. D’après les résultats affichés, donner les contenus des différents registres.
2.4. Lequel est le registre d’instruction ?
2.5. Quel est le rôle du registre d’instruction ?
2.6. Quelle est l’adresse de la prochaine instruction à exécuter ?
2.7. Quelle est l’adresse de l’instruction suivante à exécuter ?
3. Codage et format des instructions
En exécutant la commande u sous debug, on obtient le résultat ci-dessous :
1816:0100 B81100 MOV AX,0011
1816:0103 BB00FF MOV BX,FF00
1816:0106 01D8 ADD AX,BX
____________________________________________________________________________________________________________
Architecture des ordinateurs – TD No 3 2/3 A. Khouas
1816:0108 8B0E1100 MOV CX,[0011]
1816:010C 8B1E00FF MOV BX,[FF00]
1816:0110 01D9 ADD CX,BX
1816:0112 40 INC AX
1816:0113 FFC0 INC AX
1816:0115 CD20 INT 20
3.1. Expliquer le rôle de la commande u de debug.
3.2. Quelle est la taille de ce programme ?
3.3. Donner le format des instructions 1,3,4 et 7.
3.4. Donner l’opcode des instructions MOV, ADD, INC et INT, sachant que le format général
des instructions du 8086 est le suivant :
N° du bit dans l'octet
N° d'octet 7 6 5 4 3 2 1 0
1 opcode d w
2 mod reg r/m
3 [optionel : déplacement (Low), adresse ou donnée]
4 [optionel : déplacement (High), adresse ou donnée]
5 [optionel : donnée (Low)]
6 [optionel : donnée (High)]
Opcode : code opération de l’instruction.
d = 1 pour données trasférée de R/M ver REG et = 0 pour REG vers R/M.
w = 0 pour donnée sur 8 bits et =1 pour donnée sur 16 bits.
mod : mode d’interprétation du champ r/m (e.g. 11 pour registre registre).
reg : sélection des registres (e.g. 000=AX ou AL, 001=CX ou CL, 010=DX ou DL, ...)
r/m : mode d’adressage registre/mémoire
3.5. Quel est le nombre de cycles nécessaire pour l’exécution de ce programme ? Le tableau
ci-dessous donne le nombre de cycles pour certaines instructions du 8086.
Instruction Nombre de cycles
mov reg imm 4
mov reg mem 8
Add reg reg 3
inc reg 3
int 71
4. La machine virtuelle
Soit une machine virtuelle avec :
& Un bus d’adresse de 8 bits.
& Un registre d’instruction de 16 bits.
& Un registre général de 16 bits nommé A.
& Une mémoire organisé en cellules de 16 bits.
& Le format des instructions sur 16 bits est le suivant :
Opcode (8 bits) Opérande (8 bits)
15 14 ………9 8 7 6 … … … 1 0
____________________________________________________________________________________________________________
Architecture des ordinateurs – TD No 3 3/3 A. Khouas
& Le jeu d’instructions de la machine est donné dans le tableau ci-dessous :
Nom de l’instruction Code opération (hexa) Description
LOAD XX 01XX A <-- XX
LOAD [XX] 02XX A <-- [XX]
STR [XX] 03XX [XX] <-- A
ADD XX 11XX A <-- A + XX
ADD [XX] 12XX A <-- A + [XX]
SUB XX 21XX A <-- A – XX
SUB [XX] 22XX A <-- A – [XX]
MUL XX 31XX A <-- A * XX
MUL [XX] 32XX A <-- A * [XX]
END 3021 Fin du programme
[XX] représente le contenu de la cellule mémoire d’adresse XX.
4.1. Quelle est l’espace d’adressage de cette machine ?
4.2. Quelle est la taille maximale de la mémoire que la machine peut utiliser ?
4.3. Sur combien de bits cette machine travaille-t-elle ?
4.4. Donner les instructions du programme qui se trouve à l’adresse 10h de la mémoire ci-
dessous.
Adresse
(hexa) Contenu
10 0220
11 1221
12 0322
13 0221
14 2220
15 0323
16 3021
17 0120
18 0221
19 1021
1A 1220
1B 0120
1C 0221
1D 1021
1E 0F00
1F 00EF
Adresse
(hexa) Contenu
20 0F00
21 00EF
22 0FEB
23 0FEC
24 0FED
25 0FEE
26 0FEE
27 0F01
28 0F00
29 00EF
2A 0F00
2B 00EF
2C 0FEB
2D 0FEC
2E 0FED
2F 0FEE
4.5. Quelles sont les cellules mémoires qui sont modifiées après exécution du programme ?
Donner le contenu de ces cellules après exécution du programme.
4.6. Écrire pour cette machine un programme assembleur permettant de faire l’opération
suivante : 008F + 00CD – (000F * 0008). Le résultat sera sauvegardé à l’adresse 30h.
4.7. On suppose qu’on a saisi le programme de la question 4.6 à l’adresse 20h de la mémoire,
donner sous forme d’un tableau le contenu de la mémoire avant et après exécution du
programme.
5. Travail pratique (à faire chez soi)
5.1. Écrire et exécuter sous debug un programme assembleur permettant d’identifier parmi
tous les flags (NV, UP, EI, PL, ZR, AC, PE, et CY) celui de la retenu, de débordement,
de zéro et de signe.
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !