Cours de langage d'assemblage

Slides:



Advertisements
Présentations similaires
L’électronique numérique
Advertisements

Architecture de machines Codage des informations
Codage de l’information
t(s) U(v) CAN temps ,4v
t(s) U(v) CAN temps ,4v
ACTIVITES NUMERIQUES Ranger les nombres Trouver le nombre manquant
Assembleur
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Le codage de l ’information
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Samedi 6 septembre 2008matériel informatique1 Codage de linformation.
Architecture des Ordinateurs
Architecture des Ordinateurs
Les types de codage Le complément à 2 : Nombres entiers
Présentation Unité de codage
Représentation numérique de l’information
Le binaire L’historique.
Initiation à l’informatique : HARDWARE
TRAVAIL 3 : PRODUCTION MULTIMÉDIA
Faculté des Lettres et des Sciences Humaines
Partie Informatique Algorithmique Introduction A. LOTFI
Quels sont les différents modèles ?
Nature, numération, code
Les systèmes de numération
Numération Marc Delebecque. Numération Marc Delebecque.
1. Convention La base d'un système de numération est le nombre de symboles utilisés par le système de numération. - binaire (2), 2 chiffres 0,1 ; -décimal.
Gestion des branchements
B.Shishedjiev - Informatique
Le codage des nombres en informatique
Formats des nombres réels
Chapitre 4.

Plan Description du CNA (DAC) Caractéristiques du CNA
Interprétation du contenu d ’une zone mémoire
Système d’exploitation : Assembleur
Chapitre 4 L’information
Arithmétique des “computers”
Représentation de l’information
Programmation Initiation Aux Langages C et C++ (2) Bruno Permanne 2006.
Les Pourcentages.
Bascules RS ou SR.
Page de garde présentation
Les fractions, les nombres décimaux et les pourcentages
1. Echantillonnage et quantification
La logique binaire 1.
Types de données fondamentaux
Mise en forme en Mathématiques
Formation des commissaires sportifs
Les bases de l’assembleur
Programme "Architecture des Ordinateurs 1".
LE TRAITEMENT ANALOGIQUE
Codage de l’information
Le codage des nombres en informatique
Chapitre 2 : Représentation de l’information dans la machine
Représentation binaire de nombres entiers et opérations arithmétiques de base Sujets de ce thème
Introduction aux réseaux
Représentation des informations
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Représentation et opérations.
Le Système Binaire Introduction Les bases à connaitre Conversions
Architecture Des Ordinateurs Microprocesseur Et Mémoire
TPE 1science de l’ingénieurs
Chapitre 3 :Algèbre de Boole
Le codage des nombres binaires
Architecture des ordinateurs cours 3 Micro-instructions et unité de contrôle, langage machine, langage d’assemblage, modes d’adressage Agata Savary, IUT.
TD0 - Rappels. Acquis du programme 1 ère année Analyser et modéliser : un problème, une situation ; Imaginer et concevoir : une solution algorithmique.
Cohen Julien Neville gabriel
Le codage des nombres en informatique
Chapitre 3 La numération octale et hexadécimale.
Le codage des nombres en informatique
Transcription de la présentation:

Cours de langage d'assemblage 08/04/2017 Cours de langage d'assemblage Dominique Warnant - Jean-Luc Collinet Année académique 2006 - 2007 Ouvrages de référence (disponibles à la bibliothèque) Auto-formation à l'assembleur PC , HOFFMAN A., MicroApplication Assembleur x86, IRVINE K., Campus Press IBM PC Assembly language and Programming, ABEL P., Prentice Hall Le langage d’assemblage est très proche de la machine. Cela nous projettera directement au cœur du processeur. Il y a plusieurs langages d'assemblage selon le type de processeur. On dit que le langage est propre à un processeur. Nous travaillerons essentiellement avec une émulation d’un vieux processeur 8086. (Rappeler l'évolution 386,486,…) Les concepts restent les mêmes dans le futur (présent), il n’y a que la complexité qui croît. Autant voir le facile d’abord. Les programmes que vous écrirez ne seront pas spectaculaires car, en langage d’assemblage, il faut tout faire soi-même. Par exemple, afficher un nombre à l’écran, gérer son format binaire ou décimal,… Le langage d’assemblage permet donc un accès à toutes les possibilités de la machine. C'est un grand avantage. Piloter la carte écran directement par exemple,… Proche de la machine, le langage permet une rapidité plus grande d’exécution (si le programme n’est pas trop mal écrit). Dans un programme écrit en Pascal, certaines portions de code peuvent être écrites en langage d’assemblage pour une vitesse d ’exécution plus importante. (ex. : pour l’affichage à l’écran d’une animation) Nous étudions ce langage car il aide à comprendre le fonctionnement d'un ordinateur. Egalement, il permet de comprendre les systèmes d'exploitation (Dos,…) et la programmation appelée "système" à ce niveau. Les concepts que nous aborderons seront utiles dans des programmes bien plus complexes mais également dans d’autres langages (même évolués). Etre précis en langage d’assemblage, c’est déjà gagner beaucoup pour les autres langages car la moindre imprécision est sanctionnée ici. Souvent la sanction est un arrêt complet de la machine.

Cours de langage d'assemblage 08/04/2017 Cours de langage d'assemblage Dominique Warnant - Jean-Luc Collinet Année académique 2006 - 2007 Qu’est-ce qu’un langage d’assemblage ? Très proche de la machine Propre à un processeur Accès à toutes les possibilités de la machine Rapide à l’exécution Pourquoi étudier ce langage ? Comment fonctionne l'ordinateur ? La programmation "système" Un atout pour être précis Le langage d’assemblage est très proche de la machine. Cela nous projettera directement au cœur du processeur. Il y a plusieurs langages d'assemblage selon le type de processeur. On dit que le langage est propre à un processeur. Nous travaillerons essentiellement avec une émulation d’un vieux processeur 8086. (Rappeler l'évolution 386,486,…) Les concepts restent les mêmes dans le futur (présent), il n’y a que la complexité qui croît. Autant voir le facile d’abord. Les programmes que vous écrirez ne seront pas spectaculaires car, en langage d’assemblage, il faut tout faire soi-même. Par exemple, afficher un nombre à l’écran, gérer son format binaire ou décimal,… Le langage d’assemblage permet donc un accès à toutes les possibilités de la machine. C'est un grand avantage. Piloter la carte écran directement par exemple,… Proche de la machine, le langage permet une rapidité plus grande d’exécution (si le programme n’est pas trop mal écrit). Dans un programme écrit en Pascal, certaines portions de code peuvent être écrites en langage d’assemblage pour une vitesse d ’exécution plus importante. (ex. : pour l’affichage à l’écran d’une animation) Nous étudions ce langage car il aide à comprendre le fonctionnement d'un ordinateur. Egalement, il permet de comprendre les systèmes d'exploitation (Dos,…) et la programmation appelée "système" à ce niveau. Les concepts que nous aborderons seront utiles dans des programmes bien plus complexes mais également dans d’autres langages (même évolués). Etre précis en langage d’assemblage, c’est déjà gagner beaucoup pour les autres langages car la moindre imprécision est sanctionnée ici. Souvent la sanction est un arrêt complet de la machine.

Plan général du cours les concepts fondamentaux 08/04/2017 Plan général du cours les concepts fondamentaux Représentation des informations en mémoire Description du processeur 8086 Etude de quelques instructions Petits programmes

Systèmes de numération V 101 Vijf 5 Five Cinq 8 représentations différentes du nombre 5 système de numération

positionnels ex.: décimal Systèmes de numération non positionnels ex.: romain 1000 Mille M Un système de numération positionnel est caractérisé par sa base et par le nombre de symboles Base = valeur attribuée à 10

Système décimal base : 10 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 08/04/2017 Système décimal base : 10 symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 4693 = 4*103 + 6*102 + 9*101 + 3*100 Système hexadécimal base : 1016 ( = 1610 ) symboles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F A3C16 = A16*10162 + 3*10161 + C*10160 = 10*162 + 3*161 + 12*160 = 2620 Système binaire base : 102 ( = 210 ) symboles : 0, 1 1012 = 12*1022 + 02*1021 + 12*1020 = 1*22 + 0*21 + 1*20 = 5

Conversion décimal  hexadécimal 5438 16 5424 339 16 14 336 21 16 = 3 16 E16 1 16 = 5 316 STOP = 1 516 = 116 543810 = 153E16 Méthode des divisions successives par 16

Conversion décimal  binaire 149 1 74 37 1 18 9 1 4 2 1 1 14910 = 1001 01012 Méthode des divisions successives par 2

Conversion hexadécimal  décimal *16 16 + 5 *16 336 + 3 *16 5424 + 14 = 543810 153E16 = 543810

Conversion hexadécimal  décimal autre méthode 1 5 3 E16 = E * 1610 0 + 3 * 1610 1 + 5 * 1610 2 + 1 * 1610 3 E * 10160 + 3 * 10161 + 5 * 10162 + 1 * 10163 110 14 1016 = 1610 1610 48 25610 1280 409610 4096 543810

Conversion binaire  décimal 1 0 0 1 0 1 0 1 2 *2 2 + *2 4 + *2 8 + 1 *2 18 + *2 36 + 1 *2 74 + *2 148 + 1 = 14910

Conversion binaire  décimal autre méthode 1 0 1 12 = 1 * 210 0 + 1 * 210 1 + 0 * 210 2 + 1 * 210 3 1 * 1020 + 1 * 1021 + 0 * 1022 + 1 * 1023 110 1 102 = 210 210 2 410 810 8 1110

Conversion hexadécimal  binaire 16 = 24 Chaque chiffre hexadécimal  4 chiffres binaires 016  00002 116  00012 216  00102 316  00112 916  10012 416  01002 A16  10102 516  01012 B16  10112 616  01102 C16  11002 716  01112 D16  11012 816  10002 E16  11102 F16  11112

Conversion hexadécimal  binaire A 4 8 C 16 1010 0100 1000 1100 2 Remplacer chaque chiffre hexadécimal par son équivalent binaire (en 4 chiffres) Remarque : on peut supprimer les 0 en début de nombre X Exemple : 39D16 = 0011 1001 11012

Conversion binaire  hexadécimal 1010 0100 1000 11002 A 4 8 C 10100100100011002 = A48C16 Regrouper les chiffres binaires par 4 (en commençant par la fin du nombre) Remplacer chaque groupe de 4 chiffres binaires par son équivalent hexadécimal Exemple : 11 1001 10112 00 3 9 B 11100110112 = 39B16