Chapitre 2
Codage, langage machine et
instructions
Jean Privat
Université du Québec à Montréal
INF2170 — Organisation des ordinateurs et assembleur
Automne 2013
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 1 / 29
Plan
1 Représentation des nombres
2 Représentation des données informatiques
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 2 / 29
Rappel
Données et instructions
Sont en mémoire
Partagent la même forme
Tout est des bits
Qu’est-ce que la mémoire ?
Un grand tableau de cellules
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 3 / 29
Cellules mémoires
Contiennent
Pas vraiment des valeurs décimales
Mais des valeurs binaires
La « signification » des valeurs binaires
N’est pas stockée dans la cellule
Mais dépend du sens que peut leur donner le
« lecteur »
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 4 / 29
Plan
1 Représentation des nombres
2 Représentation des données informatiques
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 5 / 29
Système de numération
Qu’est-ce qu’un nombre ?
Une quantité
La mesure de quelque chose
Sa représentation ?
11012
158
D16
1310
XIII
« treize »
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 6 / 29
Représentation des nombres
Les chiffres
Les briques de bases pour représenter un nombre
Système décimal
Il n’est pas plus « vrai » que les autres systèmes
Mais c’est celui dont on a l’habitude
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 7 / 29
Notation positionnelle
Les puissance de la base du système
Base 10 : 1 (un), 10 (dix), 100 (cent), 1000 (mille),
etc.
Exemple
10110 = 1 × 102 + 0 × 101 + 1 × 100
1012 = 1 × 22 + 0 × 21 + 1 × 20 = 510
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 8 / 29
Système binaire
2 chiffres
0 et 1
Exercices
11012 = ?
110011010101012 = ?
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 9 / 29
Décimal → binaire
Principe
Suite de division entière par 2
On conserve les restes (en ordre inverse)
Exemple
1910 /2 = 9 reste 1
9/2 = 4 reste 1
4/2 = 2 reste 0
2/2 = 1 reste 0
1/2 = 0 reste 1
0 donc 1910 = 100112
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 10 / 29
Décimal → binaire (alternative)
Principe alternatif
Suite de soustractions des puissances de 2
On soustrait les plus gros en premier
Exemple
1910 ≥ 16 ? oui on note 1, il reste 3
310 ≥ 8 ? non on note 0, il reste 3
310 ≥ 4 ? non on note 0, il reste 3
310 ≥ 2 ? oui on note 1, il reste 1
110 ≥ 1 ? oui on note 1, il reste 0
donc 1910 = 100112
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 11 / 29
Système hexadécimal
Le binaire (base 2), c’est bien
2 chiffres : 0 et 1
Représentation native de la machine
Mais trop de chiffres dans les nombres
L’hexadécimal (base 16), c’est mieux
16 chiffres : 0 à 9 et A, B, C, D, E et F
Moins de chiffres dans les nombres
Passages faciles binaire → hexadécimal
et hexadécimal → binaire
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 12 / 29
Hexadécimal ↔ binaire
Principe
On part de la droite
4 bits ↔ 1 chiffre hexadécimal
On utilise la table pour trouver l’équivalent
Exemple
1000112 ↔ ”0010 0011” ↔ ”2 3” ↔ 2316
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 13 / 29
Préfixes d’unités
Normes ISO et CEI
kilo (k) 103 kibi (Ki) 210 = 1 024
méga (M) 106 mébi (Mi) 220 = 1 048 576
giga (G) 109 gibi (Gi) 230 = 1 073 741 824
téra (T) 1012 tébi (Ti) 240 = 1 099 511 627 776
mili (m) 10−3
micro (µ) 10−6
nano (n) 10−9
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 14 / 29
Plan
1 Représentation des nombres
2 Représentation des données informatiques
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 15 / 29
Représentation de l’information
Les ordinateurs actuels sont binaires
Le bit est la plus petite unité d’information
L’octet (groupe de 8 bits, byte) est la plus petite
unité d’information adressable
Octet
28 = 256 combinaison de bits différents
(de 00000000 à 11111111)
ou 2 chiffres hexadécimaux
(de 00 à FF)
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 16 / 29
Données
Les données manipulées
Sont de nature diverse
Doivent être représentés sous forme binaire
Occupent des zones mémoire de longueur fixes ou
variables
Mot mémoire
L’unité de base des zones de longueur fixes
En Pep/8, un mot = 2 octets (16 bits)
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 17 / 29
Mot mémoire
En mémoire
Un mot regroupe plusieurs octets
L’adresse d’un mot et celle du premier octet
3AB
3AC moitié un adresse
3AD moitié deux
3AE
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 18 / 29
Boutisme (Endianness)
L’ordre de rangement des octets d’un mot
3AB 3AB
3AC AB ABCD CD 3AC
3AD CD AB 3AD
3AE 3AE
Gros boutisme Petit boutisme
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 19 / 29
Représentation des nombres entiers
Non signés sur 16 bits
0 à 65535
15 3 2 1 0
Exemple : 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 = 19010
Signés sur 16 bits
Le bit de poids fort code le signe
Pour les positifs, on utilise les 15 bits restants
Pour les négatifs... la semaine prochaine
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 20 / 29
Représentation des caractères
Représentation ASCII
Représenté par un code de 7 bits
ASCII = American Standard Code for Information
Interchange
Représentation ISO 8859-1 (dite latin 1)
Représenté par un code de 8 bits
Inclue l’ASCII
Inclue les lettres accentuées
Représentation Unicode
Bien plus compliqué
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 21 / 29
Langage machine
Instructions
Codes d’opérations = quoi faire
Codes d’opérandes = où trouver les opérandes
Catégories d’instructions
Instruction arithmétiques (calculs)
Instructions logique
Instructions de transfert (déplacement d’information)
Instructions de contrôle (déroulement de l’exécution)
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 22 / 29
Langage machine : exemple
Adresse Instruction
2100 C1212C
2103 B001F4
2106 0E211E
2109 C1211E
210C E12128
210F C1212C
2112 E1212A
2115 712128
2118 E1212C
211B 042103
211E ...
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 23 / 29
Types de processeur
CISC
complex instruction-set computer
Plein d’instruction compliqués
Programmes cours et lisibles
RISC
reduced instruction-set computer
Que des instructions simples
Plus de registres et de cache
Hybride
CISC émulé par du RISC
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 24 / 29
Langage d’assemblage
Principe :
Forme symbolique du langage machine
Remplacement des instructions par des mots
Remplacement des adresses par des symboles
On peut mettre des commentaires
Plusieurs formes de valeurs littérales
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 25 / 29
Langage d’assemblage : exemple
Fibo : LDA somme , d
Boucle : CPA 500 , i ; w h i l e ( somme < 500)
BRGE Affiche ; {
LDA dernier , d
STA a vant , d ; avant = d e r n i e r ;
LDA somme , d
STA dernier , d ; d e r n i e r = somme ;
ADDA a vant , d
STA somme , d ; somme = a v a n t+d e r n i e r ;
BR Boucle ; } // w h i l e
Affiche : . . .
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 26 / 29
Traitement d’un programme en
langage d’assemblage
Programme Liste du
Assembleur programme
source
Données
Programme
objet Éditeur de Programme
lien objet
Bibliothèques Chargeur chargé
Résultats
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 27 / 29
La semaine prochaine
Arithmétique informatique
Entiers relatifs et calculs
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 28 / 29
Bibliographie
Notes de cours
Chapitre 3 : Codage de l’information
Livres
Sections 3.1, 3.2, 3.4, 3.5, 3.6, 3.7
Programmes
02-fibo.pep
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 29 / 29