Vous êtes sur la page 1sur 48

03/12/2022

Cours Architecture d’ordinateurs

Fatiha El Hatmi

ISAMM
Cycle ingénieur en sciences appliquées et en technologie
2021/2022

El hatmi F, 1ère année ING, 2022/2023 1

Plan du cours

 Chapitre 1: Structure de l’ordinateur


 Chapitre 2: Représentation (codage) des données
 Chapitre 3: Architecture de base d’un ordinateur
 Chapitre 4: Les mémoires
 Chapitre 5: Jeu d’instructions

El hatmi F, 1ère année ING, 2022/2023 2

1
03/12/2022

Chapitre V

Jeu d’instructions

El hatmi F, 1ère année ING, 2022/2023 3

Plan chapitre V
1. Introduction
2. Type d’instructions
3. Codage des instructions
4. Mode d’adressage
5. Registres sur 8086
6. Les indicateurs (Flags)
7. Gestion de la mémoire par le 8086
8. Temps d’exécution des instructions
9. Programmation assembleur

El hatmi F, 1ère année ING, 2022/2023 4

2
03/12/2022

Introduction

El hatmi F, 1ère année ING, 2022/2023 5

Introduction

El hatmi F, 1ère année ING, 2022/2023 6

3
03/12/2022

Type d’instructions

El hatmi F, 1ère année ING, 2022/2023 7

Couches ordinateur

El hatmi F, 1ère année ING, 2022/2023 8

4
03/12/2022

Couches ordinateur

El hatmi F, 1ère année ING, 2022/2023 9

Couches ordinateur
 Couche logique numérique

El hatmi F, 1ère année ING, 2022/2023 10

5
03/12/2022

Couches ordinateur
 Couche microarchitecture

El hatmi F, 1ère année ING, 2022/2023 11

Couches ordinateur
 Couche jeu d’instruction

El hatmi F, 1ère année ING, 2022/2023 12

6
03/12/2022

Couches ordinateur
 Couche système d’exploitation

El hatmi F, 1ère année ING, 2022/2023 13

Couches ordinateur
 Couche langage d’assemblage

El hatmi F, 1ère année ING, 2022/2023 14

7
03/12/2022

Couches ordinateur
 Couche langage d’application

El hatmi F, 1ère année ING, 2022/2023 15

Codage d’une instruction

El hatmi F, 1ère année ING, 2022/2023 16

8
03/12/2022

Codage d’une instruction

El hatmi F, 1ère année ING, 2022/2023 17

Codage d’une instruction

El hatmi F, 1ère année ING, 2022/2023 18

9
03/12/2022

Codage d’une instruction

El hatmi F, 1ère année ING, 2022/2023 19

Modes d’adressage

• Selon la manière dont la donnée est


spécifiée, c’est à dire selon le mode
d’adressage de la donnée, une instruction
sera codée par 1, 2, 3 ou 4 octets.

El hatmi F, 1ère année ING, 2022/2023 20

10
03/12/2022

Modes d’adressage
 Adressage implicite

El hatmi F, 1ère année ING, 2022/2023 21

Modes d’adressage
 Adressage immédiat

El hatmi F, 1ère année ING, 2022/2023 22

11
03/12/2022

Modes d’adressage
 Adressage immédiat

• Exemple 2 : MOV AX, 12

El hatmi F, 1ère année ING, 2022/2023 23

Modes d’adressage
 Adressage immédiat

El hatmi F, 1ère année ING, 2022/2023 24

12
03/12/2022

Modes d’adressage
 Adressage direct

El hatmi F, 1ère année ING, 2022/2023 25

Modes d’adressage
 Adressage direct

• En adressage direct, on indique l’adresse d’un emplacement en mémoire principale


en hexadécimal entre crochets : MOV AX, [A340]

El hatmi F, 1ère année ING, 2022/2023 26

13
03/12/2022

Modes d’adressage
 Adressage direct

El hatmi F, 1ère année ING, 2022/2023 27

Modes d’adressage
 Adressage indirect

El hatmi F, 1ère année ING, 2022/2023 28

14
03/12/2022

Modes d’adressage
 Adressage indirect

El hatmi F, 1ère année ING, 2022/2023 29

Modes d’adressage
 Adressage indexé

El hatmi F, 1ère année ING, 2022/2023 30

15
03/12/2022

Modes d’adressage
 Adressage relatif

El hatmi F, 1ère année ING, 2022/2023 31

Modes d’adressage
 Autres types d’adressage
D’autres types d’adressage existent.
 Adressage registre à registre: Les 2 opérandes se trouvent dans des
registres. Exemple: MOV AX, BX ; opérandes 16 bits
ADD CH, DL ; opérandes 8 bits
 Adressage basé: (par registre) Il existe deux registres de base: Le registre
BX et le registre BP :
• Le registre BX est utilisé avec l’association de l’un des segments des
données qui sont: DS et ES. Exemple: MOV AL, [BX] ou bien MOV AL, DS :
[BX]. (ils donnent le même résultat).
MOV AL, ES : [BX]
• Le registre BP est associé à la pile, par exemple MOV AL, [BP] va
transférer une donnée de la pile à partir d’une position pointée par le
contenu du registre [BP] vers AL.
• Adressage basé indexé avec ou sans déplacement : Exemples: MOV AL,
[BX+SI]; MOV AL, [BX+DI+200h]; MOV AL, [BX+SI+200h]
El hatmi F, 1ère année ING, 2022/2023 32

16
03/12/2022

Registres sur 8086


 Organisation interne du 8086
Le 8086 est constitué de deux unités fonctionnant en parallèle :
• L’unité d’exécution (EU : Execution Unit) ;
• L’unité d’interface de bus (BIU : Bus Interface Unit)
Rôle des deux unités :
• L’unité d’interface de bus (BIU) : recherche les instructions en
mémoire et les range dans une file d’attente ;
• L’unité d’exécution (EU) : exécute les instructions contenues
dans la file d’attente. Les deux unit´es fonctionnent
simultanément, d’où une accélération du processus d’exécution
d’un programme (fonctionnement selon le principe du pipe-line).

El hatmi F, 1ère année ING, 2022/2023 33

Registres sur 8086

El hatmi F, 1ère année ING, 2022/2023 34

17
03/12/2022

Registres sur 8086


Le microprocesseur 8086 contient 14 registres répartis en 4
groupes :

 Registres généraux : 4 registres sur 16 bits


AX = (AH,AL) ;
BX = (BH,BL) ;
CX = (CH,CL) ;
DX = (DH,DL).

Ils peuvent être également considérés comme 8 registres sur 8 bits. Ils
servent à contenir temporairement des données. Ce sont des registres
généraux mais ils peuvent être utilisés pour des opérations
particulières. Exemple : AX = accumulateur, CX = compteur, BX: base.

El hatmi F, 1ère année ING, 2022/2023 35

Registres sur 8086


 Registres de pointeurs et d’index : 4 registres sur 16 bits

El hatmi F, 1ère année ING, 2022/2023 36

18
03/12/2022

Registres sur 8086


 Pointeur d’instruction et indicateurs (flags) : 2 registres sur 16 bits

El hatmi F, 1ère année ING, 2022/2023 37

Registres sur 8086


 Indicateurs flags

El hatmi F, 1ère année ING, 2022/2023 38

19
03/12/2022

Registres sur 8086


 Indicateurs flags

El hatmi F, 1ère année ING, 2022/2023 39

Registres sur 8086


 Indicateurs flags

El hatmi F, 1ère année ING, 2022/2023 40

20
03/12/2022

Registres sur 8086


 Registres de segments: 4 registres sur 16 bits qui permettent d’indiquer les
positions de 4 segments

El hatmi F, 1ère année ING, 2022/2023 41

Registres sur 8086


 Résumé

El hatmi F, 1ère année ING, 2022/2023 42

21
03/12/2022

Gestion de la mémoire par le 8086


 Rappel

Organisation externe de la mémoire

El hatmi F, 1ère année ING, 2022/2023 43

Gestion de la mémoire par le 8086


 Rappel

Adressage de la mémoire

El hatmi F, 1ère année ING, 2022/2023 44

22
03/12/2022

Gestion de la mémoire par le 8086


 Rappel

Espace mémoire adressable en fonction des lignes d’adresses

El hatmi F, 1ère année ING, 2022/2023 45

Gestion de la mémoire par le 8086


 Segmentation de la mémoire

El hatmi F, 1ère année ING, 2022/2023 46

23
03/12/2022

Gestion de la mémoire par le 8086


 Correspondance entre adresse logique et adresse physique
Le fait d’injecter 4 zéros en poids faible du segment revient à
effectuer un décalage de 4 positions vers la gauche, c’est à dire une
multiplication par 24 = 16.
A un instant donné, le 8086 a accès à 4 segments dont les adresses
se trouvent dans les registres de segment CS, DS, SS et ES.
Le segment de code contient les instructions du programme, le
segment de données contient les données manipulées par le
programme, le segment de pile contient la pile de sauvegarde et le
segment supplémentaire peut aussi contenir des données.
Le registre CS est associé au pointeur d’instruction IP, ainsi la
prochaine instruction à exécuter se trouve à l’adresse logique CS : IP.

El hatmi F, 1ère année ING, 2022/2023 47

Gestion de la mémoire par le 8086


 Segmentation de la mémoire

Division de la mémoire en segments Association registre segment-registre d’offset

El hatmi F, 1ère année ING, 2022/2023 48

24
03/12/2022

Gestion de la mémoire par le 8086


 Segmentation de la mémoire

Mémoire accessible par le 8086 à un instant donné :

El hatmi F, 1ère année ING, 2022/2023 49

Gestion de la mémoire par le 8086


 Segmentation de la mémoire

El hatmi F, 1ère année ING, 2022/2023 50

25
03/12/2022

Gestion de la mémoire par le 8086


 Segmentation de la mémoire

El hatmi F, 1ère année ING, 2022/2023 51

Gestion de la mémoire par le 8086


 Correspondance entre adresse logique et adresse physique

El hatmi F, 1ère année ING, 2022/2023 52

26
03/12/2022

Gestion de la mémoire par le 8086


 Correspondance adresse logique adresse physique
Exemple : Couple segment: offset générant les adresses
physiques.
 Adresse physique dans le segment de données

El hatmi F, 1ère année ING, 2022/2023 53

Temps d’exécution d’une instruction


 Cycle machine versus cycle instruction

Les signaux périodiques générés par l’horloge définissent le cycle de base


ou cycle machine, durée élémentaire régissant le fonctionnement de la
machine.
Un cycle instruction est composé d’un cycle de recherche et d’un cycle
d’exécution et peut s’étendre sur plusieurs cycles machine.
Le temps d’exécution du Pentium pour la plupart des instructions est de 1 à
5 cycles d’horloge.
El hatmi F, 1ère année ING, 2022/2023 54

27
03/12/2022

Temps d’exécution d’une instruction


Chaque instruction nécessite un certain nombre de
cycles d’horloges pour s’effectuer.
Le nombre de cycles dépend de la complexité de
l’instruction et aussi du mode d’adressage : il est plus
long d’accéder à la mémoire principale qu’à un
registre du processeur.
La durée d’un cycle dépend de la fréquence
d’horloge de l’ordinateur. Plus l’horloge bat
rapidement, plus un cycle est court et plus on
exécute un grand nombre d’instructions par seconde

El hatmi F, 1ère année ING, 2022/2023 55

Temps d’exécution d’une instruction

Chaque instruction est caractérisée par le nombre de


périodes d’horloge (ou microcycles) qu’elle utilise
(donnée fournie par le fabricant du microprocesseur).
Exemple : horloge à 5 MHz, période T = 1/f = 0, 2 µs.
Si l’instruction s’exécute en 3 microcycles, la durée
d’exécution de l’instruction est : 3 × 0,2=0,6 µs.
L’horloge est constituée par un oscillateur à quartz
dont les circuits peuvent être internes ou externes au
microprocesseur.

El hatmi F, 1ère année ING, 2022/2023 56

28
03/12/2022

Programmation assembleur
 Le microprocesseur 8086

El hatmi F, 1ère année ING, 2022/2023 57

Programmation assembleur
 Pourquoi l’assembleur

El hatmi F, 1ère année ING, 2022/2023 58

29
03/12/2022

Programmation assembleur
 Pourquoi l’assembleur
 Ecriture des instructions en langage symbolique:
Voici un programme en langage machine 80486, implanté à l’adresse 0100H :

A1 01 10 03 06 01 12 A3 01 14

Ce programme additionne le contenu de deux cases mémoire et range le


résultat dans une troisième.
Nous avons simplement transcrit en hexadécimal le code du programme.
Il est clair que ce type d’écriture n’est pas très utilisable par un être humain.
A chaque instruction que peut exécuter le processeur correspond une
représentation binaire sur un ou plusieurs octets, comme on l’a vu plus haut.
C’est le travail du processeur de décoder cette représentation pour effectuer
les opérations correspondantes. Afin de pouvoir écrire (et relire) des
programmes en langage machine, on utilise une notation symbolique,
appelée langage assembleur.
El hatmi F, 1ère année ING, 2022/2023 59

Programmation assembleur
 Pourquoi l’assembleur
Ainsi, la première instruction du programme ci-dessus (code A1 01 10) sera
notée : MOV AX, [0110] elle indique que le mot mémoire d’adresse 0110H
est chargé dans le registre AX du processeur.
On utilise des programmes spéciaux, appelés assembleurs, pour traduire
automatiquement le langage symbolique en code machine. Voici une
transcription langage symbolique du programme complet. L’adresse de
début de chaque instruction est indiquée à gauche (en hexadécimal).

El hatmi F, 1ère année ING, 2022/2023 60

30
03/12/2022

Programmation assembleur
 Pourquoi l’assembleur
Lorsque l’on doit lire ou écrire un programme en langage
machine, il est difficile d’utiliser la notation hexadécimale. On
écrit les programmes à l’aide de symboles comme MOV, ADD,
etc.
Les concepteurs de processeur, comme Intel, fournissent
toujours une documentation avec les codes des instructions de
leur processeur, et les symboles correspondant.
Debug est un programme, très utile pour traduire
automatiquement les symboles des instructions en code
machine. Cependant, debug n’est utilisable que pour mettre au
point de petits programmes. En effet, le programmeur doit
spécifier lui même les adresses des données et des
instructions.

El hatmi F, 1ère année ING, 2022/2023 61

Programmation assembleur
Soit par exemple le programme suivant, qui multiplie une donnée
en mémoire par 8 :

Nous avons spécifié que la donnée était rangée à l’adresse 0111H,


et que l’instruction de branchement JE allait en 0106H. Si l’on désire
modifier légèrement ce programme, par exemple ajouter une
instruction avant MOV BX, [0111], il va falloir modifier ces deux
adresses. On conçoit aisément que ce travail devienne très difficile
si le programme manipule beaucoup de variables.
El hatmi F, 1ère année ING, 2022/2023 62

31
03/12/2022

Programmation assembleur
 Généralités :
Chaque microprocesseur reconnait un ensemble
d’instructions appelé jeu d’instructions (Instruction Set) fixé
par le constructeur.
Pour les microprocesseurs classiques, le nombre
d’instructions reconnues varie entre 75 et 150
(microprocesseurs CISC : Complex Instruction Set Computer).
Il existe aussi des microprocesseurs dont le nombre
d’instructions est très réduit (microprocesseurs RISC :
Reduced Instruction Set Computer) : entre 10 et 30
instructions, permettant d’améliorer le temps d’exécution des
programmes.

El hatmi F, 1ère année ING, 2022/2023 63

Programmation assembleur
 Généralités :
Une instruction est définie par son code opératoire, valeur
numérique binaire difficile à manipuler par l’être humain.
On utilise donc une notation symbolique pour représenter les
instructions : les mnémoniques.
Un programme constitué de mnémoniques est appelé
programme en assembleur.
Les instructions peuvent être classées en groupes :
• Instructions de transfert de données ;
• Instructions arithmétiques ;
• Instructions logiques ;
• Instructions de branchement ...

El hatmi F, 1ère année ING, 2022/2023 64

32
03/12/2022

Programmation assembleur
 Les instructions de transfert

El hatmi F, 1ère année ING, 2022/2023 65

Programmation assembleur
 Les instructions de transfert

El hatmi F, 1ère année ING, 2022/2023 66

33
03/12/2022

Programmation assembleur
 Les instructions de transfert

El hatmi F, 1ère année ING, 2022/2023 67

Programmation assembleur
 Les instructions de transfert

El hatmi F, 1ère année ING, 2022/2023 68

34
03/12/2022

Programmation assembleur
 Les instructions de transfert

El hatmi F, 1ère année ING, 2022/2023 69

Programmation assembleur
 Les instructions de transfert

El hatmi F, 1ère année ING, 2022/2023 70

35
03/12/2022

Programmation assembleur
 Les instructions de transfert

El hatmi F, 1ère année ING, 2022/2023 71

Programmation assembleur
 Les instructions de transfert

El hatmi F, 1ère année ING, 2022/2023 72

36
03/12/2022

Programmation assembleur
 Les instructions arithmétiques

El hatmi F, 1ère année ING, 2022/2023 73

Programmation assembleur
 Les instructions arithmétiques

El hatmi F, 1ère année ING, 2022/2023 74

37
03/12/2022

Programmation assembleur
 Les instructions arithmétiques

El hatmi F, 1ère année ING, 2022/2023 75

Programmation assembleur
 Les instructions arithmétiques

El hatmi F, 1ère année ING, 2022/2023 76

38
03/12/2022

Programmation assembleur
 Les instructions logiques

El hatmi F, 1ère année ING, 2022/2023 77

Programmation assembleur
 Les instructions logiques

El hatmi F, 1ère année ING, 2022/2023 78

39
03/12/2022

Programmation assembleur
 Les instructions logiques

El hatmi F, 1ère année ING, 2022/2023 79

Programmation assembleur
 Les instructions de branchement

El hatmi F, 1ère année ING, 2022/2023 80

40
03/12/2022

Programmation assembleur
 Les instructions de branchement

El hatmi F, 1ère année ING, 2022/2023 81

Programmation assembleur
 Les instructions de branchement

El hatmi F, 1ère année ING, 2022/2023 82

41
03/12/2022

Programmation assembleur
 Fin du programme

El hatmi F, 1ère année ING, 2022/2023 83

Programmation assembleur
 Les instructions
Quelques instructions du
80x86. Le code de l’instruction
est donné en hexadécimal dans
la deuxième colonne.
La colonne suivante précise le
nombre d’octets nécessaires
pour coder l’instruction complète
(opérande inclus).
On note valeur une valeur sur
16 bits, et adr une adresse sur 16
bits également.

El hatmi F, 1ère année ING, 2022/2023 84

42
03/12/2022

Chapitre V

Annexes

El hatmi F, 1ère année ING, 2022/2023 85

Annexes
 Temps d’exécution d’une instruction
Durée d'exécution d'un programme (heure début − heure
fin) = temps passé par l'UC pour exécuter effectivement
le programme (temps UC utilisateur) + temps passé pour
exécuter des programmes du système d'exploitation +
attente des résultats d'opérations d'E/S + temps passé
pour exécuter d'autres programmes (fonctionnement
"temps partagé", time-sharing).
Périodes d'horloge par instruction (Clock Cycles Per
Instruction, CPI) :

El hatmi F, 1ère année ING, 2022/2023 86

43
03/12/2022

Annexes
 Temps d’exécution d’une instruction
Temps UC utilisateur = (période horloge) × (CPI) ×
(nombre instructions du programme).
Réduction du temps UC utilisateur :
1° Augmentation de la fréquence de l'horloge
(amélioration de la technologie, simplification des
circuits) ;
2° Réduction du CPI (structure UC mieux adaptée
aux instructions, accès mémoire plus rapides) ;
3° Réduction du nombre d'instructions (instructions
plus puissantes, compilateurs optimisants).

El hatmi F, 1ère année ING, 2022/2023 87

Annexes
 Les instructions logiques de décalage

El hatmi F, 1ère année ING, 2022/2023 88

44
03/12/2022

Annexes
 Les instructions logiques de décalage

El hatmi F, 1ère année ING, 2022/2023 89

Annexes
 Les instructions logiques de décalage

El hatmi F, 1ère année ING, 2022/2023 90

45
03/12/2022

Annexes
 Les instructions logiques de décalage

El hatmi F, 1ère année ING, 2022/2023 91

Annexes
 Les instructions logiques de rotation

El hatmi F, 1ère année ING, 2022/2023 92

46
03/12/2022

Annexes
 Les instructions logiques de rotation

El hatmi F, 1ère année ING, 2022/2023 93

Annexes
 Les instructions logiques de rotation

El hatmi F, 1ère année ING, 2022/2023 94

47
03/12/2022

Annexes
 Les instructions de branchement

El hatmi F, 1ère année ING, 2022/2023 95

48

Vous aimerez peut-être aussi