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