Codage, langage machine, instructions

publicité
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
9/2 = 4
4/2 = 2
2/2 = 1
1/2 = 0
0
Jean Privat (UQAM)
reste
reste
reste
reste
reste
1
1
0
0
1
donc 1910 = 100112
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
310
310
310
110
Jean Privat (UQAM)
≥ 16 ? oui on note 1, il reste 3
≥ 8 ? non on note 0, il reste 3
≥ 4 ? non on note 0, il reste 3
≥ 2 ? oui on note 1, il reste 1
≥ 1 ? oui on note 1, il reste 0
donc 1910 = 100112
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
kilo (k) 103
méga (M) 106
giga (G) 109
téra (T) 1012
mili (m) 10−3
micro (µ) 10−6
nano (n) 10−9
Jean Privat (UQAM)
CEI
kibi (Ki) 210
mébi (Mi) 220
gibi (Gi) 230
tébi (Ti) 240
= 1 024
= 1 048 576
= 1 073 741 824
= 1 099 511 627 776
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
3AD moitié deux
3AE
Jean Privat (UQAM)
adresse
02 — Codage
INF2170 — Automne 2013
18 / 29
Boutisme (Endianness)
L’ordre de rangement des octets d’un mot
3AB
3AC
3AD
3AE
AB
CD
ABCD
Gros boutisme
Jean Privat (UQAM)
CD
AB
3AB
3AC
3AD
3AE
Petit boutisme
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
2100
2103
2106
2109
210C
210F
2112
2115
2118
211B
211E
Instruction
C1212C
B001F4
0E211E
C1211E
E12128
C1212C
E1212A
712128
E1212C
042103
...
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 :
Boucle :
LDA
CPA
BRGE
LDA
STA
LDA
STA
ADDA
STA
BR
Affiche : . . .
Jean Privat (UQAM)
somme , d
500 , i
Affiche
dernier , d
a vant , d
somme , d
dernier , d
a vant , d
somme , d
Boucle
; w h i l e ( somme < 500)
; {
;
avant = d e r n i e r ;
;
d e r n i e r = somme ;
; somme = a v a n t+d e r n i e r ;
; } // w h i l e
02 — Codage
INF2170 — Automne 2013
26 / 29
Traitement d’un programme en
langage d’assemblage
Programme
source
Liste du
programme
Assembleur
Programme
objet
Bibliothèques
Éditeur de
lien
Chargeur
Données
Programme
objet
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
Téléchargement