Assembleur Intel avec NASM Par Etienne Sauvage Date de publication : 18 avril 2
Assembleur Intel avec NASM Par Etienne Sauvage Date de publication : 18 avril 2011 A la découverte de l'assembleur. Assembleur Intel avec NASM par Etienne Sauvage - 2 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2011 Etienne Sauvage. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD. http://esauvage.developpez.com/tutoriels/asm/assembleur-intel-avec-nasm/ I - De l'assembleur.......................................................................................................................................................4 I.1 - Du langage machine...................................................................................................................................... 4 I.2 - De l'assembleur par rapport au langage machine......................................................................................... 4 I.3 - Des fichiers exécutables.................................................................................................................................5 I.4 - Des outils à utiliser.........................................................................................................................................5 I.5 - Se jeter à l'eau du haut d'une falaise venteuse.............................................................................................5 II - Assembleur : suite..................................................................................................................................................8 II.1 - De la directive org......................................................................................................................................... 8 II.2 - Du mnémonique INT..................................................................................................................................... 8 II.3 - Des boucles...................................................................................................................................................9 II.4 - Des soucis................................................................................................................................................... 10 III - Assembleur : on continue................................................................................................................................... 12 III.1 - De l'entrée clavier.......................................................................................................................................12 III.2 - Des fonctions..............................................................................................................................................12 III.3 - De la machine............................................................................................................................................ 14 III.3.a - Des drapeaux.....................................................................................................................................14 III.3.b - De la configuration système...............................................................................................................14 III.4 - De l'affichage des nombres........................................................................................................................15 IV - Assembleur : des graphiques !...........................................................................................................................18 IV.1 - De Windows Vista...................................................................................................................................... 18 IV.2 - Le refacteur sonne toujours une paire de fois (refactoring).......................................................................18 IV.3 - De VESA.....................................................................................................................................................18 IV.4 - Du point...................................................................................................................................................... 19 IV.5 - De Bresenham............................................................................................................................................20 IV.6 - Du code...................................................................................................................................................... 20 V - Assembleur : au delà de 0x13............................................................................................................................ 21 V.1 - De la limite...................................................................................................................................................21 V.2 - Au-delà des limites......................................................................................................................................21 V.3 - D'autres ruses..............................................................................................................................................22 V.4 - Du code....................................................................................................................................................... 22 VI - Assembleur : et si on en avait encore moins ?..................................................................................................23 VI.1 - Des machines virtuelles............................................................................................................................. 23 VI.2 - Du chargeur de tige de botte.....................................................................................................................23 VI.3 - D'un secteur d'amorçage pour nous..........................................................................................................24 VI.4 - Passer par noyau planète..........................................................................................................................26 VI.5 - Des 45 tours...............................................................................................................................................26 VI.6 - Du massacre de disque.............................................................................................................................27 VI.7 - Du code......................................................................................................................................................27 VII - Assembleur : reconstruction.............................................................................................................................. 28 VII.1 - Du foutoir...................................................................................................................................................28 VII.2 - De l'affichage de texte.............................................................................................................................. 28 VII.2.a - affiche_chaine................................................................................................................................... 28 VII.2.b - nombre_vers_chaine.........................................................................................................................29 VII.3 - Des modes graphiques............................................................................................................................. 30 VII.3.a - Saut au début, optionnel.................................................................................................................. 30 VII.3.b - P'tit message pour ne pas perdre la main....................................................................................... 30 VII.3.c - Demande d'informations sur le VESA BIOS EXTENSION............................................................... 31 VII.3.d - Traitement de ces informations........................................................................................................ 31 VII.3.e - Choix du mode graphique................................................................................................................ 33 VII.3.f - Passage dans le mode choisi........................................................................................................... 34 VII.3.f.1 - Nettoyage de l'écran..................................................................................................................34 VII.3.g - Affichage de points........................................................................................................................... 35 VII.3.h - Affichage de droites..........................................................................................................................36 VII.3.i - Affichage d'un alphabet......................................................................................................................40 VII.4 - Du code.....................................................................................................................................................40 VIII - Assembleur : passage en mode protégé......................................................................................................... 41 VIII.1 - Histoire de l'informatique..........................................................................................................................41 VIII.1.a - L'architecture des premiers Personal Computers............................................................................41 Assembleur Intel avec NASM par Etienne Sauvage - 3 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2011 Etienne Sauvage. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD. http://esauvage.developpez.com/tutoriels/asm/assembleur-intel-avec-nasm/ VIII.1.b - Le piège d'IBM.................................................................................................................................41 VIII.1.c - Le mode protégé..............................................................................................................................42 VIII.2 - Problèmes avec le mode protégé............................................................................................................42 VIII.3 - Solutions en mode protégé......................................................................................................................42 VIII.3.a - Le GDT (Global Descriptor Table)...................................................................................................42 VIII.3.b - Les Descriptors................................................................................................................................ 43 VIII.4 - De la pratique...........................................................................................................................................44 IX - Assembleur : mode protégé - Retrouver ses interruptions.................................................................................46 IX.1 - Au fait, pourquoi a-t-on inventé les interruptions ?....................................................................................46 IX.2 - Et une interruption, c'est quoi ?................................................................................................................. 46 IX.3 - Comment j'en fais ?................................................................................................................................... 46 IX.4 - Du PIC........................................................................................................................................................47 IX.4.a - Du port d'entrée/sortie....................................................................................................................... 47 IX.4.b - ICW1.................................................................................................................................................. 47 IX.4.c - ICW2...................................................................................................................................................48 IX.4.d - ICW3.................................................................................................................................................. 48 IX.4.e - ICW4.................................................................................................................................................. 48 IX.4.f - OCW1..................................................................................................................................................49 IX.4.g - Fin de traitement d'interruption..........................................................................................................49 X - Remerciements....................................................................................................................................................50 Assembleur Intel avec NASM par Etienne Sauvage - 4 - Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2011 Etienne Sauvage. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Cette page est déposée à la SACD. http://esauvage.developpez.com/tutoriels/asm/assembleur-intel-avec-nasm/ I - De l'assembleur Relu par ClaudeLELOUP. Aujourd'hui, il existe une multitude de langages de programmation aux caractéristiques fort différentes. Des langages- objets, interprétés, portables, etc. se rencontrent quotidiennement. A tel point qu'il faut faire une totale confiance au compilateur pour traduire cela dans la langue de la machine. Car bien évidemment, un ordinateur ne comprend ni le C, ni le C++, encore moins le java, le CamL et autres PHP, Python et consorts. Aussi le curieux peut légitimement se poser cette question : que se passe-t-il vraiment dans le ventre de la machine ? Je joue en ce moment avec le langage de programmation le plus proche de la machine, celui à l'origine de tout : le langage assembleur. Je vous propose de jouer avec moi. I.1 - Du langage machine Un ordinateur ne comprend rien, à l'origine. Que se passe-t-il à la mise sous tension ? L'ordinateur vient brutalement à la vie. Et sa vie, à l'ordinateur, consiste à lire un livre. A la mise sous tension, il ouvre la première page de son livre et lit le premier mot. Et lire, pour un ordinateur, consiste à se modifier, à changer son état. Or donc, il lit son premier mot, et s'en trouve changé : son mot à lire n'est plus le premier, il devient le deuxième. Il a certaines de ses variables modifiées en fonction du mot lu. Un mot du livre de l'ordinateur, c'est quoi ? C'est un ensemble de fils électriques, sous tension ou pas. Vu qu'on ne s'amuse pas à ajouter ou enlever des fils à tout bout de champ, il s'ensuit que tous ces mots ont le même nombre de lettres, c'est-à-dire de fils. Nous avons ordonné ces fils en leur donnant un numéro. Et on dit que 1 est un fil électrique sous tension, et 0 un fil électrique sans tension. Un mot de l'ordinateur est donc représenté par la suite ordonnée des 0 et des 1 représentant l'état de tension de chaque fil électrique. Et une suite ordonnée de chiffres, ça donne un nombre. 86 est un mot du livre de l'ordinateur. D'un strict point de vue formel, chaque type de processeur doit avoir son propre dictionnaire. 86 n'a a priori aucune chance de signifier la même chose pour un processeur de marque AMD et pour un autre de marque Intel. 86 peut faire une addition de deux variables chez l'AMD, et afficher à l'écran la biographie des rois de France sur l'Intel. Certains se sont alors mis d'accord sur (on a aussi la version : certains ont imposé) un dictionnaire commun. Ce dictionnaire commun, c'est (une partie) de la norme Compatible PC. 86 veut dire (à peu près) la même chose chez tous les ordinateurs compatibles PC. Ca implique quelques bricoles, comme : • n'importe qui peut écrire un livre pour n'importe quel ordinateur ; • on n'est pas obligé de réécrire toutes les bibliothèques pour tous les ordinateurs ; • on ne peut pas mettre n'importe quelle fonction dans un processeur. Bien. L'informatique a avancé. Chaque nombre est une fonction à peu près partagée par un sous-groupe d'ordinateurs. Extraordinaire. Et si, je dis ça je ne dis rien, mais si, comme ça, histoire que moi je comprenne l'histoire qu'il y a dans le livre de l'ordinateur, on remplaçait, discrètement, tous ces nombres par les noms des fonctions qui leur correspondent ? Dites ? Et de ce jour, le désassembleur était né : traduire en mots plus humains les mots-nombres de l'ordinateur. Et si on faisait l'opération inverse ? Et si j'écrivais les noms des fonctions, et qu'après, on les traduisait en langue ordinateur ? Hou là, très compliqué, c'est de l'analyse de texte, on ne sait pas faire. Ce qu'on peut faire, par contre, c'est associer chaque mot ordinateur avec un tout petit mot d'anglais abrégé. Là, on devrait s'en sortir. C'est de ce modeste objectif que naquit l'assembleur. L'assembleur, c'est le premier langage de programmation différent du langage de la machine. I.2 - De l'assembleur par rapport au langage machine L'assembleur est donc une traduction du langage machine. Et comme toutes les traductions depuis la tour de Babel, elle n'a aucune raison d'être la même suivant les traducteurs. Et, de uploads/Litterature/ assembleur-intel-nasm-pdf.pdf
Documents similaires










-
54
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 26, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.4533MB