0% ont trouvé ce document utile (0 vote)
76 vues50 pages

Architecture et Programmation des Ordinateurs

Transféré par

karimaamina19752001
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
76 vues50 pages

Architecture et Programmation des Ordinateurs

Transféré par

karimaamina19752001
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Architecture des Ordinateurs

et Assembleur

2021/2022
Plan du Cours

I. Représentation de l’information
II. Architecture de base d’un ordinateur
III.Algèbre de Boole & Logique combinatoire
IV.Structure interne des Microprocesseurs
V. Programmation en assembleur

2
Objectif du cours

 Connaître les composants d’un ordinateur moderne et les technologies qu’ils utilisent
 Comprendre les grands principes de fonctionnement d’un ordinateur
 Comment s’exécutent les programmes ?
 Comment fonctionnent les divers périphériques ?
 Maîtriser la programmation en assembleur

3
Introduction

4
Historique

 1642: Blaise Pascal invente la machine d'arithmétique


 1673: Gottfried Wilhelm Von Leibniz ajouta à la Pascaline la multiplication et la
division.
 1854: George BOOLE publie un essai sur une algèbre pour simuler les raisonnement
logiques (vrai / faux)
 1938: Konrad Zuse invente un ordinateur qui fonctionne grâce à des relais
électromécaniques : le Z3. (Utilisation du binaire au lieu du décimal).
 1943: Howard Aiken met au point un ordinateur programmable (Mark I d'IBM)
 1945: John Von Neumann : définit l’architecture des ordinateurs modernes : la
machine de von Neumann

5
Historique

 1948: le transistor est créé par la firme Bell Labs.


 1960: l'IBM 7000 est le premier ordinateur à base de transistor.
 1971: le premier microprocesseur, l'Intel 4004, fait son apparition. Il permet d'effectuer
des opérations sur 4 bits simultanément.
 1976: Steve Wozniak et Steve Jobs créent le Apple I. Cet ordinateur possède un clavier,
un microprocesseur, RAM et mémoire vidéo.
 1981: IBM commercialise le premier « PC » composé d'un processeur 8088
 …

6
Définitions

 Architecture d’un système ?

 Représente l’organisation des différentes unités/ composants d’un


système et leurs interconnexions

 Un ordinateur?

 Une machine de traitement de l’information, capable de:

 Recevoir une information à travers un périphérique d’entrée.


 Mémoriser une information sur une mémoire.
 Effectuer automatiquement un traitement sur une information
suivant un programme.
 Délivrer une information sur un périphérique de sortie.
7
Besoin du codage d’information

Un ordinateur manipule toute sorte d’information :


 Numérique
 Alphabétique
 Graphique
 Audio
 Vidéo
 Programmes.
 ...

8
Besoin du codage d’information

 Information numérique = information binaire


= 1 bit (l’unité de de l’information)

 Représentée par 2 signaux électriques

 Chaque signal élémentaire peut alors se trouver dans l’un de ces deux
états 0 ou 1.

 Codage : Codée par « 0 » logique ou « 1 » logique

 Différents codages pour représenter une information

9
Les systèmes de numération

Historique
 Codage des nombres : dans un but de calcul
 Systèmes et bases de numérotation pour représenter des nombres
 Méthodes pour compter et calculer
 Un système de numération est un ensemble de règles qui permet de former les
nombres, les dire, les écrire et calculer.

 Exemple: Représentation usuelle du 145 = ?


= 1 × 102 + 4 × 101 + 5 × 100

10
Les systèmes de numération

Les systèmes de numération les plus courants :

 Le système décimal (base 10) : utilise les 10 chiffres : 0, 1, 2, 3, 4, 5,


6, 7, 8 et 9.

 Le système binaire (base 2) : utilise les 2 chiffres : 0 et 1.

 Le système octal (base 8) : utilise les 8 chiffres : 0, 1, 2, 3, 4, 5, 6 et 7.

 Le système hexadécimal (base 16) : utilise les 16 chiffres : 0, 1, 2, 3,


4, 5, 6, 7, 8, 9, A, B, C, D, E et F.

11
Les systèmes de numération

 Trois notions interviennent dans un système:


• La base B du système, c'est un nombre entier quelconque.
• Les digits du système sont des caractères tous différents et
représentent chacun un élément de la base; il y en a donc B au total.
• Poids du digit selon son rang.

 Expression d’un nombre X en base B :

X = aNBN + aN-1BN-1 + … + a1B1 + a0B0

• 0 ≤ ai < B, quelque soit l’indice i (de 0 à N).

• On écrit X, en ignorant les puissances de B : X = (aNaN-1…a1a0)B


12
Les systèmes de numération

 Expression d’un nombre X en base B :

X = aNBN + aN-1BN-1 + … + a1B1 + a0B0

 Exemple:

 9810 = 9 x 101 + 8 x 100


 1012 = 1 x 22 + 0 x 21 + 1 x 20 = 4+1 = 510
 1368 = 1 x 82 + 3 x 81 + 6 x 80 = 64+24+6 = 9410

13
Les systèmes de numération: Changement de base

 Décimal vers base B:

On procède par une série de divisions entières par B

 Division du nombre décimal N par B : donne une valeur v0 et un reste r0


 On divise v0 par B : donne v1 et reste r1
 On recommence pour v1 et ainsi de suite
 Quand vi < B, c'est fini
 Le résultat de la prochaine division donnera 0
 On écrit: (N)B = viri-1...r1r0
14
Les systèmes de numération: Changement de base

 Décimal vers base B:

 Exemple : (1234)10 en décimal

1234÷10 = 123 , reste 4 1234 10


123÷10 = 12, reste 3 4 123 10
12÷10 = 1, reste 2 3 12 10
1 < 10, donc on arrêt la division 2 1
On a donc : (1234)10 = (1234)10

15
Les systèmes de numération: Changement de base

 Décimal vers base B:

 Exemple : (25)10 en binaire

25÷2 = 12, reste 1 25 2


12÷2 = 6, reste 0 1 12 2
6÷2 = 3, reste 0 0 6 2
3÷2 = 1, reste 1 0 3 2

1 < 2, donc on arrêt la division 1 1


On a donc : (25)10 = (11001)2

16
Les systèmes de numération: Changement de base

 Décimal vers base B:

 Exemple : (7172)10 en hexadécimal

7172 ÷ 16 = 448, reste 4 7172 16


448 ÷16 = 28, reste 0 4 448 16
28 ÷16 = 1, reste 12 = C 0 28 16
1 < 16, donc on arrêt la division 12
1
On a donc : (7172)10 = (1C04)16

17
Les systèmes de numération: Changement de base

 Cas particuliers : Conversion du binaire à l'octal

• 1 chiffre octal = un groupe de 3 chiffres binaires


• Avec 3 bits on code les 8 chiffres de la base octale

(000)2 = 0
(001)2 = 1
(010)2 = 2
(011)2 = 3
(100)2 = 4
(101)2 = 5
(110)2 = 6
(111)2 = 7
18
Les systèmes de numération: Changement de base

 Cas particuliers : Conversion du binaire en octal

 Exemple 1: (10110001101)2 en octal

• On regroupe par groupes de 3 bits : 010 110 001 101


• On rajoute des zéros au début au besoin
• (10110001101)2 = (2615)8

 Exemple 2: (1111100110)2 en octal


• (1111100110)2 = (001 111 100 110)2 = (1746)8

19
Les systèmes de numération: Changement de base

 Cas particuliers : Conversion du l'octal en binaire

 Exemple 1: (254) 8 en binaire


• 2 = (010)2, 5 = (101)2, 4 = (100)2
• On concatène dans l'autre base ces groupes de 3 bits :
(254)8 = (10101100)2

 Exemple 2: (761)8 en binaire


• (761)8 = (111110001)2

20
Les systèmes de numération: Changement de base

 Cas particuliers : Conversion du binaire en hexadécimal

 1 chiffre hexadécimal = un groupe de 4 chiffres binaires

(0000)2 = 0 (1000)2 = 8
(0001)2 = 1 (1001)2 = 9
(0010)2 = 2 (1010)2 = 10 = (A)
(0011)2 = 3 (1011)2 = 11 = (B)
(0100)2 = 4 (1100)2 = 12 = (C)
(0101)2 = 5 (1101)2 = 13 = (D)
(0110)2 = 6 (1110)2 = 14 = (E)
(0111)2 = 7 (1111)2 = 15 = (F)

21
Les systèmes de numération: Changement de base

 Cas particuliers : Conversion du binaire en hexadécimal

 Exemple 1: (10110001101)2 en hexadécimal


• On regroupe par groupes de 4 bits : 0101 1000 1101
• (10110001101)2 = (58D)16

 Exemple 2 : (1111111100111)2 en hexadécimal


• (1111111100111)2 = (1FE7)16

22
Les systèmes de numération: Changement de base

 Cas particuliers : Conversion du hexadécimal en binaire

 Exemple 1: (D46C)16 en binaire


• D = 13 = (1101)2, 4 = (0100)2, 6 = (0110)2, C = 12 = (1100)2
• On concatène dans l'autre base ces groupes de 4 bits :
(D46C)16 = (1101010001101100)2

 Exemple 2: (EF2A)16 en binaire


• (EF2A)16 = (1110111100101010) 2

23
Les systèmes de numération: Les entiers signés

 Entiers non-signés : ensemble d’entiers positifs


 Entiers signés: ensemble d’entiers positifs et négatifs

Comment représenter des entiers négatifs ?


 Convention de recodage des chaînes de bits
 Valeur signée
 Complément à 1
 Complément à 2

24
Les systèmes de numération: Les entiers signés

 Représentation par valeur signée


 Réserver un bit pour le signe (le bit le plus à gauche appelé le bit de poids
fort), les autres bits codent la valeur absolue du nombre.

• 0 = positif et 1 = négatif

 Exemple (sur 4 bits) :


• +310= 00112
• −310= 10112

Exemple (sur 8 bits) :


• +2510 = 00011001 2
25
• −2510 = 10011001 2
Les systèmes de numération: Les entiers signés

 Représentation par valeur signée


 Réserver un bit pour le signe (le bit le plus à gauche appelé le bit de poids
fort), les autres bits codent la valeur absolue du nombre.

 Difficultés: Deux représentations de la valeur zéro


• + 010 = 000000002
• − 010 = 100000002

 Sur 8 bits : -127…….+127

26
Les systèmes de numération: Les entiers signés

 Complément à 1
 Le bit de poids fort correspond au signe :
 0 = positif 1 = négatif

 Un nombre négatif s’obtient en complémentant bit à bit sa valeur


absolue avec 1. Ou on prend la représentation de la partie entière et
on inverse tous les bits.

 Exemple: représentation de −410 sur 4 bits


 410 =01002 donc − 410 =10112

 Exemple: représentation de −2510 sur 8 bits :


2510 = 000110012 donc −2510 :111001102
27
Les systèmes de numération: Les entiers signés

 Complément à 1
 Le bit de poids fort correspond au signe :
 0 = positif 1 = négatif

 Deux représentations pour 0 :


000000002 et 111111112

 Nombres représentés sur 8 bits : -127……+127


 Valeur max (complément à 1):
• Positive de 000000002 à 011111112 => de 0 à 12710
• Négative de 100000002 à 111111112 => de -127 à -010

28
Les systèmes de numération: Les entiers signés

 Complément à 2
 Le bit de poids fort correspond au signe :
 0 = positif 1 = négatif

 Un nombre négatif s’obtient en ajoutant 1 au complément à 1 de sa valeur


absolue. Ou on prend la représentation de la partie entière et on soustrait 1
puis on inverse tous les bits.

 Exemple (sur 4 bits): représentation de −610


• + 610 =01102
• Complément à 1 de +610 = 10012
• Ajout de 1: 10012 + 1 = 10102
• −610 = 10102
29
Les systèmes de numération: Les entiers signés

 Complément à 2
 Le bit de poids fort correspond au signe :
 0 = positif 1 = négatif

 Un nombre négatif s’obtient en ajoutant 1 au complément à 1 de sa valeur


absolue. Ou on prend la représentation de la partie entière et on soustrait 1
puis on inverse tous les bits.

 Exemple (sur 8 bits): représentation de −2510


• +2510 = 000110012
• Complément à 1 de +2510 = 111001102
• Ajout de 1: 111001112 + 1 = 111001112
• −2510 = 111001112
30
Les systèmes de numération: Les entiers signés

 Complément à 2
 Le bit de poids fort correspond au signe :
 0 = positif 1 = négatif

 Une seule représentation pour 0 : 000000002

 Nombres représentés sur 8 bits : -128..+127


 Valeur max (complément à 2):
• Positive de 000000002 à 011111112 => de 0 à 12710
• Négative de 100000002 à 111111112 => de -128 à -110

31
Les systèmes de numération: Les entiers signés

Exercice:

 Convertir en décimal:
• (11001000)CA2
• (00100111)CA2
 Solution:
• (11001000)CA2 = -56
• (00100111)CA2 = 39

32
Les systèmes de numération: Les entiers signés

 Capacité de représentation
 Les valeurs positives: intervalle [0, 2 nombre bits -1]
 Les valeurs négative (complément à 1): intervalle [1-(2 nombre bits)/2, -1+(2 nombre bits)/2]
 Pour négative (complément à 2): intervalle [-(2 nombre bits)/2, -1+(2 nombre bits)/2]
 Exemple pour 3 bits:
 Valeurs positifs: intervalle [0, 23 -1]=>[0, 7]
 Valeurs négatives (complément à 1): intervalle [1-(23 )/2, -1+(23)/2]
=>[1-4, -1+4] = [-3,3]
 Valeurs négatives (complément à 2): intervalle [-(23 )/2, -1+(23)/2]
=>[-4, -1+4] = [-4,3]
33
Les systèmes de numération: Les entiers signés

 Application: Compléter le tableau suivant


Décimal
Valeur signée Complément à 1 Complément à 2

011
010
001
000
111
110
101
100
34
Les systèmes de numération: Les entiers signés

 Application:
Décimal
Valeur signée Complément à 1 Complément à 2

011 3 3 3
010 2 2 2
001 1 1 1
000 0 0 0
111 -3 -0 -1
110 -2 -1 -2
101 -1 -2 -3
100 -0 -3 -4
35
Les systèmes de numération: Les entiers signés

Binaire Décimal Valeur signée Complément à 1 Complément à 2


0000 0 0 0 0
0001 1 1 1 1
0010 2 2 2 2
0011 3 3 3 3
0100 4 4 4 4
0101 5 5 5 5
0110 6 6 6 6
0111 7 7 7 7
1000 8 -0 -7 -8
1001 9 -1 -6 -7
1010 10 -2 -5 -6
1011 11 -3 -4 -5
1100 12 -4 -3 -4
1101 13 -5 -2 -3
1110 14 -6 -1 -2
36 1111 15 -7 -0 -1
Retenu & Débordement

 Retenu est rencontrée lorsqu’une retenue existe à la fin de


l’opération d’addition ou soustraction(comme décimal).

 Débordement : la taille allouée (8, 16 ... bits) au codage d'un


nombre est trop petite pour coder ou stocker correctement le
résultat d'un calcul.
 Exemple avec addition, sur 8 bits, non signé :
• 10110011 + 10000101 = 100111000
• Besoin de 9 bits pour coder le nombre
•  Stockage du résultat impossible sur 8 bits

 Exemple avec addition, sur 8 bits, signé :


• 01110011 + 01000101 = 10111000
37 • Addition de 2 positifs donne un négatif !
Retenu & Débordement

 Exemple 1 :(4bits signé )


• 7+3=?
0111
+ 0 011
----------------------
1010 -6 !!!

 Exemple 2:(8bits signé )


• 110 + 43 = ?
01101110 110
+ 00101011 43
----------------------
10011001 (-103) !! (et non 153)
38
Représentation des nombres réels

 Méthode de la virgule fixe

 La position de la virgule reste inchangée.


 On code un nombre réel R sur 3 champs :
• Le bit de poids fort (MSB) est réservé pour le signe de R.
• La partie entière de R est codé en binaire (sur un nombre de
bits précis).
• La partie fractionnaire de R est également codé en binaire
(sur un nombre de bits précis).

Bit de signe Partie entière en binaire Partie fractionnaire en binaire

39
Représentation des nombres réels

 Méthode de la virgule fixe

 Exemple 1:
• R = -10.25
• Signe = - donc MSB = 1
• Partie entière de R = 10 = (1010)2
• Partie fractionnaire de R = 0.25 = (01)2
• 0,25 x 2 = 0.5
• 0,5 x 2 = 1
• La représentation complète de R sur 2 octets (1 octet pour la
partie entière plus le signe et 1 octet pour la partie
fractionnaire):
• R = 1000101001000000
40
Représentation des nombres réels

 Méthode de la virgule fixe

 Exemple : conversion de 14.37510 en base 2 ?


• 1410 = 11102
• 0.37510 = (?) 2

• 0.375 x 2 = 0.75
• 0.75 x 2 = 1.5
• 0.5 x 2 = 1.0
• Résultat = 14.37510 = 1110.011 2

 Exemple de conversion:

• 110.011= 1x22+1x21 +0x20 +0x2-1 +1x2-2 +1x2-3 = 6.375 10


41
Représentation des nombres réels

 Méthode de la virgule fixe


 Exercice:
 Trouver la représentation binaire de 0.2357 sur 8 bits?
• 0.2357 × 2 = 0 + 0.4714
• 0.4714 × 2 = 0 + 0.9428
• 0.9428 × 2 = 1 + 0.8856
• 0.8856 × 2 = 1 + 0.7712
• 0.7712 × 2 = 1 + 0.5424
• 0.5424 × 2 = 1 + 0.0848
• 0.0848 × 2 = 0 + 0.1696
• 0.1696 × 2 = 0 + 0.3392
 (0.2357)10 = (0.00111100)2

42
Représentation des nombres réels

 Méthode de la virgule flottante

 La position de la virgule est variable.


 On écrit le nombre réel sous la forme :
R = (±1) × M × 2E
• un bit de signe
• une mantisse M
• un exposant E

 Exemple de représentation
• 0.0000111010 · 20
• 0.000000111010 · 22
• 1.111010 · 2 − 5
43
Représentation des nombres réels

 Méthode de la virgule flottante


 Codage IEEE 754
• Le signe + est représenté par 0 et le signe − par 1
• La mantisse appartient à l’intervalle [1, 2[
• L’exposant est un entier relatif et il est établi de manière à ce que la mantisse soit de
la forme « 1,… »

 Plusieurs formats:
• Simple précision : 32 bits (soit 4 octets) 1 bit de signe, 8 bits d’exposant, 23 bits de
mantisse
• Double précision : 64 bits (soit 8 octets) 1 bit de signe, 11 bits d’exposant, 52 bits
de mantisse

44
Représentation des nombres réels

 Méthode de la virgule flottante

 Codage IEEE 754 (simple précision)


• Au lieu de coder E (en binaire ), on code E + 127.
• C’est l’exposant biaisé Eb : Eb = E + 127
• Cela permet d’avoir un exposant non signé

45
Représentation des nombres réels

 Méthode de la virgule flottante


 Codage IEEE 754 (simple précision 32 bits )
 Application:
• R = −6.625
• 6.62510 = 110.1012
• 110.10102 = 1.10101 × 22
• M = 10101000000000000000000
• E= 2 => Eb = 2+127 = 12910 = 100000012
• Résultat : 1 10000001 10101000000000000000000
46
Représentation des nombres réels

 Méthode de la virgule flottante


 Codage IEEE 754 (simple précision 32 bits )
 Application:
• R = −0.75
• 0.7510 = 0.112
• 0.112 = 1.1 × 2-1
• M = 10000000000000000000000
• E= -1 => Eb = -1+127 = 12610 = 11111102
• Résultat : 1 01111110 10000000000000000000000
47
Représentation des caractères

 Plusieurs formats pour représenter des caractères (symboles alphanumériques)


sous forme binaire :

 EBCDIC (Extended Binary-Coded Decimal Interchange Code)


• Représentation sur 8 bits (256 caractères possibles)
• Utilisé autrefois sur les mainframes IBM

 ASCII (American Standard Code for Information Interchange)


• Représentation sur 7 bits (pas d’accents)
• ASCII étendu : sur 8 bits mais pas de normalisation

 Unicode : encodage sur 16 bits (65536 possibilités) pour représenter tous


les caractères de toutes les langues (Arabic, Basic Latin…)

48
Représentation des caractères

 Exemple table code ASCII

49

50

Vous aimerez peut-être aussi