Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Le langage assembleur - Maîtrisez le code des processeurs de la famille X86

Le langage assembleur Maîtrisez le code des processeurs de la famille X86

Informations

Livraison possible dès le 17 avril 2024
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • Livre (broché) - 17 x 21 cm
  • ISBN : 978-2-7460-0650-6
  • EAN : 9782746065086
  • Ref. ENI : EPLANAS

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-7460-0668-1
  • EAN : 9782746066861
  • Ref. ENI : LNEPLANAS
Le Plus des Editions ENI : *Le livre numérique online est offert pour l'achat du livre imprimé. Retrouvez tous les livres bénéficiant de cette offre dans la rubrique "Livres Numériques". Voir conditions
Consulter des extraits du livre en ligne Aperçu du livre papier
  • Niveau Expert
  • Nombre de pages 420 pages
  • Parution juin 2011
  • Niveau Expert
  • Parution mai 2011
Ce livre sur le langage assembleur s'adresse à tout développeur soucieux d’utiliser ce langage et de disposer d’une documentation pertinente et directe sur le langage des processeurs de la famille X86, au cœur de (presque) tous les PC du monde.
Programmer en langage machine permet de s'affranchir de certaines limitations dues aux langages de haut niveau et peut être un loisir tout autant qu'un travail au sein d'une entreprise ; l'assembleur permet de développer des applications vraiment très légères, rapides et concises.
Le livre propose en trois parties une méthode pour comprendre, apprendre et pratiquer l'assembleur. La première partie, après un rappel sur les connaissances nécessaires à une bonne compréhension du livre, décrit l’aspect théorique du langage. La seconde partie, purement technique, contient la documentation du matériel, des tableaux à propos des structures système, les données relatives aux périphériques et les listes d'instructions. La dernière partie du livre couvre l'aspect pratique, avec des exemples sur la mise en œuvre des techniques et fonctionnalités de l'assembleur, pour vous familiariser avec ce langage.
L’objectif de l’auteur est de rendre le lecteur autonome pour qu’il puisse, à la fin de cette lecture, programmer en assembleur et progresser petit à petit vers la réalisation de programmes complexes et performants.

Les chapitres du livre :
Avant-propos – Notions de base – Interface avec le programmeur – Processeur x86 – Ressources matérielles – Jeux d’instructions – Programmation – Annexe : Extension du jeu d’instructions

Téléchargements

Avant-propos
  1. Avant-propos
Notions de base
  1. Numération binaire et hexadécimale
    1. 1. Le binaire et les données
    2. 2. Les bases de numération
      1. a. Représentation binaire, base 2
      2. b. Représentation octale, base 8
      3. c. Représentation décimale, base 10
      4. d. Représentation hexadécimale, base 16
      5. e. La représentation BCD, base 16 limitée à 10 valeurs
      6. f. La représentation ASCII
    3. 3. Les données signées
  2. Registres, mémoires et variables
    1. 1. La donnée et le matériel
      1. a. Le bus
      2. b. La mémoire
    2. 2. Les adresses
    3. 3. Opérations logiques
  3. Les diagrammes fonctionnels et les tables
  4. Les mathématiques et l'esprit
  5. Notions propres à l'assembleur
Interface avec le programmeur
  1. Le langage assembleur
  2. Règles d'écriture
    1. 1. Syntaxe d’une ligne de code FASM
      1. a. Une instruction par ligne
      2. b. Étiquettes
      3. c. Opérandes
      4. d. Chaînes
      5. e. Expressions numériques
      6. f. Adresses
    2. 2. Le projet assembleur
      1. a. Créer un fichier .ASM
      2. b. Créer un fichier .INC
      3. c. Organiser les répertoires de la source
      4. d. Créer des sauvegardes
      5. e. Choix des noms d’étiquettes
    3. 3. Le compilateur
      1. a. FASM
      2. b. Les listings
      3. c. Paramètres de la ligne de commande
    4. 4. L’éditeur de texte
      1. a. Fasmw.exe
      2. b. Fasmd.exe
      3. c. Raccourcis-clavier des IDE FASM
    5. 5. Les désassembleurs
    6. 6. Les débogueurs
    7. 7. Les émulateurs
      1. a. Émuler un PC
      2. b. Émuler le DOS
    8. 8. L’éditeur hexadécimal
    9. 9. La documentation et Internet
Processeur x86
  1. Le CPU
    1. 1. Les instructions vues depuis le CPU
    2. 2. L’exécution
  2. Les modes du CPU
    1. 1. Le mode réel
    2. 2. Le mode protégé
    3. 3. Le mode SMM
    4. 4. Le mode 64 bits
  3. Les registres x86
    1. 1. Registres à usage général (GPR)
    2. 2. Registres d’index
    3. 3. Registres de pointeurs
    4. 4. Registres de segments
      1. a. Histoire des segments
      2. b. Les registres de segments en pratique
    5. 5. Registre de drapeaux
      1. a. Codes de conditions
    6. 6. Registres de gestion du processeur
      1. a. Registres de gestion de la mémoire
      2. b. Registres de contrôle du processeur (Control Registers)
      3. c. Registres de debug (Debug Registers)
      4. d. Registre de compteur
  4. Les extensions
    1. 1. FPU
      1. a. Les nombres flottants
      2. b. La pile FPU
    2. 2. Extensions SIMD
      1. a. Extension MMX
      2. b. Extension SSE
      3. c. Extension AVX
      4. d. Extension 64 bits
  5. La mémoire
    1. 1. Plan général
    2. 2. Mémoire en mode réel 16 bits
    3. 3. Mémoire en mode protégé 32 bits
    4. 4. Mémoire en mode 64 bits
    5. 5. Bus d’adresses et agencement des données
      1. a. Règles d’accès générales
      2. b. Zones de mémoire réservées
      3. c. Accès par les segments
      4. d. Alignement des données
    6. 6. Structures système x86
      1. a. Table des Vecteurs d’Interruptions (IVT)
      2. b. Table de Descripteurs Globale (GDT)
      3. c. Table de Descripteurs Locale (LDT)
      4. d. Table de Descripteurs d’Interruptions (IDT)
      5. e. Tables de pages (pagination)
      6. f. Segment d’état des tâches (TSS)
      7. g. I/O BitMap, plan de permission d’accès
  6. Les ports
Ressources matérielles
  1. Le clavier
    1. 1. Contrôleur clavier
      1. a. Un peu d’histoire
      2. b. Les ports du clavier
      3. c. Commandes et messages
    2. 2. Les scancodes
    3. 3. Utilisation du clavier
  2. Le contrôleur VGA
    1. 1. La géométrie de l’écran
    2. 2. Modes VGA standard
    3. 3. Palette VGA
    4. 4. Mode texte
    5. 5. Mémoire vidéo VGA
      1. a. Vsync
    6. 6. Norme VESA
      1. a. Conclusion VGA / VESA
  3. La souris
    1. 1. Fonctionnement
      1. a. Trame PS/2
      2. b. Extensions PS/2
      3. c. Commandes souris PS/2
      4. d. Trame de la souris série
    2. 2. Utilisation de la souris
      1. a. Souris DOS
      2. b. La souris sous Windows
  4. Le PIT (Timer)
    1. 1. Ports du timer
    2. 2. Programmation
    3. 3. Timer 2 et haut-parleur système
    4. 4. Le timer en pratique
  5. L'horloge temps réel
    1. 1. NMI et CMOS
  6. Le contrôleur d'interruptions programmable (PIC)
    1. 1. ICW
    2. 2. OCWs
    3. 3. IRR/ISR
    4. 4. Conclusion
  7. Le contrôleur de disques durs
    1. 1. Géométrie des disques durs
      1. a. CHS
      2. b. LBA
    2. 2. Accès par le BIOS (INT 13h)
      1. a. Fonctions INT 13h normales
      2. b. Fonctions INT 13h étendues
    3. 3. Accès en PIO
    4. 4. Conclusion
  8. Les ports de communications
    1. 1. Port parallèle
      1. a. Interface matérielle du port LPT
      2. b. Registres du port LPT
      3. c. Utilisation
      4. d. Conclusion
    2. 2. Port série
      1. a. Interface matérielle du port COM
      2. b. Interface logicielle
      3. c. Utilisation
  9. Ressources matérielles non standard
Jeux d'instructions
  1. Historique
  2. Base 16 bits
  3. Jeux d'instructions généraux
    1. 1. Jeux d’instructions 32 bits en 2011
      1. a. Instructions décimales
      2. b. Instructions arithmétiques
      3. c. Instructions de mouvements de données
      4. d. Instructions logiques
      5. e. Instructions de contrôle du processeur
      6. f. Instructions de branchements
      7. g. Instructions conditionnelles
      8. h. Instructions sur les chaînes
  4. Les instructions 32 bits en pratique
    1. 1. Mov et les affectations
    2. 2. Opérations sur les pointeurs
    3. 3. Instructions de branchements
      1. a. Instructions de sauts
      2. b. Instructions d’appels
    4. 4. Jeux d’instructions système
      1. a. Gestion de la mémoire
      2. b. Segmentation en mode protégé
      3. c. Pagination
      4. d. Gestion du processeur
    5. 5. Extension du CPU 64 bits
      1. a. Jeu d’instructions 64 bits
Programmation
  1. Premier programme
    1. 1. Programme .COM
    2. 2. Programme .EXE DOS
    3. 3. Programme EXE win32
    4. 4. Programme Linux
  2. Construction autour des données
    1. 1. Structurer les données
    2. 2. Gestion des données en fichiers
    3. 3. Les variables
      1. a. Entiers
      2. b. Données empaquetées
      3. c. Virgule fixe
      4. d. Virgule flottante
      5. e. BCD
  3. Formats de fichiers
    1. 1. Texte et ASCII
    2. 2. Images (pixels)
    3. 3. Sons (signaux)
    4. 4. Flux de communication
  4. Les fonctions
    1. 1. Créer la fonction
      1. a. Factorisation du code
      2. b. Découpage du code
      3. c. Hiérarchiser le code
    2. 2. Gérer la fonction en fichier séparé
      1. a. Permettre le partage avec d’autres sources
      2. b. Prévoir une éventuelle évolution
    3. 3. Gérer les paramètres d’une fonction
      1. a. Gestion par les registres
      2. b. Gestion par la mémoire
      3. c. Gestion par la pile
    4. 4. Les pointeurs de fonctions
      1. a. Pointeurs locaux
      2. b. Pointeurs globaux
      3. c. Pointeurs de N niveaux
    5. 5. Les conventions d’appels de haut niveau
      1. a. Cdecl
      2. b. Syscall
      3. c. Fastcall
      4. d. Pascal
      5. e. Stdcall
  5. Programmation d'applications
    1. 1. BOOT/BIOS
      1. a. Le BOOT
      2. b. Le Boot-loader
      3. c. Les tables de partitions
      4. d. Le mode réel
      5. e. Le mode protégé
      6. f. Revenir au mode réel
      7. g. Les autres modes non documentés
  6. Optimisation du code (et des données)
    1. 1. Optimisation de code
      1. a. Pipelines
    2. 2. Optimisation de données
  7. Conclusion
Annexe - Extensions du jeu d'instructions
  1. Généralités
  2. Extension X87
    1. 1. Jeu d’instructions FPU
      1. a. Instructions de mouvement de données
      2. b. Instructions de mouvement conditionnel de données
      3. c. Instructions de chargement de constantes
      4. d. Instructions arithmétiques primitives
      5. e. Instructions de comparaison
      6. f. Instructions trigonométriques
      7. g. Instructions exponentielles et logarithmiques
      8. h. Instructions de contrôle
      9. i. Méthode de programmation FPU
  3. Extensions SIMD
    1. 1. MMX
      1. a. Instructions de mouvement de données
      2. b. Instructions arithmétiques
      3. c. Instructions de comparaison
      4. d. Instructions logiques
      5. e. Instructions de conversion
      6. f. Instructions d’empaquetage
      7. g. Instructions de décalages logiques
      8. h. Instruction de gestion EMMS
    2. 2. SSE1
      1. a. Instructions de mouvement de données
      2. b. Instructions arithmétiques
      3. c. Instructions logiques
      4. d. Instructions de comparaison
      5. e. Instructions de distribution et empaquetage de données
      6. f. Instructions de conversion
      7. g. Instructions SIMD sur les entiers 64 bits
      8. h. Instructions avec contrôle du cache
    3. 3. SSE2
      1. a. Instructions de mouvement de données
      2. b. Instructions arithmétiques
      3. c. Instructions logiques
      4. d. Instructions de comparaison
      5. e. Instructions de distribution et empaquetage de données
      6. f. Instructions de conversion
      7. g. Instructions SIMD sur les entiers 64 et 128 bits
      8. h. Instructions avec contrôle du cache
    4. 4. SSE3
      1. a. Instruction d’optimisation du chargement de données 128 bits non alignée
      2. b. Instructions d’amélioration des chargements et copies
      3. c. Instructions d’additions et soustractions empaquetées
      4. d. Instructions d’additions et soustractions horizontales
    5. 5. SSSE3
      1. a. Instructions SSSE3
    6. 6. SSE4
      1. a. Instructions SSE4.1
      2. b. Instructions SSE4.2
      3. c. Instructions SSE4a (AMD)
    7. 7. 3Dnow!
      1. a. Instructions AMD 3Dnow!
    8. 8. Autres jeux

Nos nouveautés

voir plus