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
Chapitre 2Codage, langage machine et
instructions
Jean PrivatUniversité du Québec à Montréal
INF2170 — Organisation des ordinateurs et assembleurAutomne 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 instructionsSont en mémoirePartagent la même formeTout 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
ContiennentPas vraiment des valeurs décimalesMais des valeurs binaires
La « signification » des valeurs binairesN’est pas stockée dans la celluleMais 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érationQu’est-ce qu’un nombre ?
Une quantitéLa mesure de quelque chose
Sa représentation ?11012158D161310XIII« treize »
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 6 / 29
Représentation des nombres
Les chiffresLes briques de bases pour représenter un nombre
Système décimalIl n’est pas plus « vrai » que les autres systèmesMais 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èmeBase 10 : 1 (un), 10 (dix), 100 (cent), 1000 (mille),etc.
Exemple10110 = 1× 102 + 0× 101 + 1× 1001012 = 1× 22 + 0× 21 + 1× 20 = 510
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 8 / 29
Système binaire
2 chiffres0 et 1
Exercices11012 = ?110011010101012 = ?
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 9 / 29
Décimal → binairePrincipe
Suite de division entière par 2On conserve les restes (en ordre inverse)
Exemple
1910/2 = 9 reste 19/2 = 4 reste 14/2 = 2 reste 02/2 = 1 reste 01/2 = 0 reste 10 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 2On soustrait les plus gros en premier
Exemple
1910 ≥ 16 ? oui on note 1, il reste 3310 ≥ 8 ? non on note 0, il reste 3310 ≥ 4 ? non on note 0, il reste 3310 ≥ 2 ? oui on note 1, il reste 1110 ≥ 1 ? oui on note 1, il reste 0
donc 1910 = 100112Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 11 / 29
Système hexadécimal
Le binaire (base 2), c’est bien2 chiffres : 0 et 1Représentation native de la machineMais trop de chiffres dans les nombres
L’hexadécimal (base 16), c’est mieux16 chiffres : 0 à 9 et A, B, C, D, E et FMoins de chiffres dans les nombresPassages faciles binaire → hexadécimalet hexadécimal → binaire
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 12 / 29
Hexadécimal ↔ binaire
PrincipeOn part de la droite4 bits ↔ 1 chiffre hexadécimalOn utilise la table pour trouver l’équivalent
Exemple1000112 ↔ ”0010 0011”↔ ”2 3”↔ 2316
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 13 / 29
Préfixes d’unités
Normes ISO et CEIkilo (k) 103 kibi (Ki) 210 = 1 024méga (M) 106 mébi (Mi) 220 = 1 048 576giga (G) 109 gibi (Gi) 230 = 1 073 741 824téra (T) 1012 tébi (Ti) 240 = 1 099 511 627 776mili (m) 10−3micro (µ) 10−6nano (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 binairesLe bit est la plus petite unité d’informationL’octet (groupe de 8 bits, byte) est la plus petiteunité d’information adressable
Octet28 = 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éesSont de nature diverseDoivent être représentés sous forme binaireOccupent des zones mémoire de longueur fixes ouvariables
Mot mémoireL’unité de base des zones de longueur fixesEn Pep/8, un mot = 2 octets (16 bits)
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 17 / 29
Mot mémoire
En mémoireUn mot regroupe plusieurs octetsL’adresse d’un mot et celle du premier octet
3ABmoitié un3ACmoitié deux3AD
3AE
adresse
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 18 / 29
Boutisme (Endianness)
L’ordre de rangement des octets d’un mot
3ABAB3ACCD3AD
3AE
Gros boutisme
3ABCD 3ACAB 3AD
3AE
Petit boutisme
ABCD
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 19 / 29
Représentation des nombres entiers
Non signés sur 16 bits0 à 65535
Exemple : 0150 0 0 0 0 0 0 1 0 1 1 1
3121100
= 19010
Signés sur 16 bitsLe bit de poids fort code le signePour les positifs, on utilise les 15 bits restantsPour les négatifs... la semaine prochaine
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 20 / 29
Représentation des caractèresReprésentation ASCII
Représenté par un code de 7 bitsASCII = American Standard Code for InformationInterchange
Représentation ISO 8859-1 (dite latin 1)Représenté par un code de 8 bitsInclue l’ASCIIInclue les lettres accentuées
Représentation UnicodeBien plus compliqué
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 21 / 29
Langage machine
InstructionsCodes d’opérations = quoi faireCodes d’opérandes = où trouver les opérandes
Catégories d’instructionsInstruction arithmétiques (calculs)Instructions logiqueInstructions 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 : exempleAdresse Instruction2100 C1212C2103 B001F42106 0E211E2109 C1211E210C E12128210F C1212C2112 E1212A2115 7121282118 E1212C211B 042103211E ...
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 23 / 29
Types de processeurCISC
complex instruction-set computerPlein d’instruction compliquésProgrammes cours et lisibles
RISCreduced instruction-set computerQue des instructions simplesPlus de registres et de cache
HybrideCISC é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 motsRemplacement des adresses par des symbolesOn peut mettre des commentairesPlusieurs formes de valeurs littérales
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 25 / 29
Langage d’assemblage : exemple
Fibo : LDA somme , dBouc le : CPA 500 , i ; wh i l e ( somme < 500)
BRGE A f f i c h e ; {LDA de r n i e r , dSTA avant , d ; avant = d e r n i e r ;LDA somme , dSTA de r n i e r , d ; d e r n i e r = somme ;ADDA avant , dSTA somme , d ; somme = avant+d e r n i e r ;BR Bouc le ; } // wh i l e
A f f i c h e : . . .
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 26 / 29
Traitement d’un programme enlangage d’assemblage
Programmesource Assembleur
Liste duprogramme
Programmeobjet
Bibliothèques
Éditeur delienChargeur
Programmeobjetchargé
Données
Résultats
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 27 / 29
La semaine prochaine
Arithmétique informatiqueEntiers relatifs et calculs
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 28 / 29
Bibliographie
Notes de coursChapitre 3 : Codage de l’information
LivresSections 3.1, 3.2, 3.4, 3.5, 3.6, 3.7
Programmes02-fibo.pep
Jean Privat (UQAM) 02 — Codage INF2170 — Automne 2013 29 / 29
Représentation des nombresReprésentation des données informatiques