Chapitre2 Codage,langagemachineet instructionsprivat/INF2170/02-codage.pdf · 2017. 3. 20. ·...

29
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

Transcript of Chapitre2 Codage,langagemachineet instructionsprivat/INF2170/02-codage.pdf · 2017. 3. 20. ·...

  • 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