1ère année - Toutes sections
25 h. de cours au second semestre
Enseignants : BEJ, HAL, NVS, ELV, FPQ, MBA
2 ECTS
Description générale du cours
Concept fondamentaux liés aux microprocesseurs : machine virtuelle, représentation des données, gestion des entrées / sorties, notions de pile et de variables locales, coprocesseur mathématique.
Set d'instructions élémentaires d'un microprocesseur, x86.
Programmation élémentaire en assembleur sous LINUX.
Matières prérequises
Cours de structure des ordinateurs, cours de système d’exploitation.
Objectifs
Permettre aux étudiants de comprendre le fonctionnement d’un microprocesseur et de se familiariser avec le set d'instructions assembleur afin de favoriser la compréhension des langages de haut niveau.
Evaluation
Voir le tableau des évaluations des cours de 1ère.
Plan du cours
Fonctionnement d’un microprocesseur
- Un ordinateur simplifié..
- Composantes du processeur <1>Déroulement d’un process...
- Interruption (pourquoi, comment ça fonctionne, sécurité, mode protégé)
- exemple de programme assembleur (compilation, exécution).
- Résumé avec gdb...
Langage d’assemblage
- Qu’est-ce que l'assembleur ?
- Pourquoi utiliser l’assembleur
- Inconvénients de l’assembleur
- Pourquoi connaître l’assembleur
- Les assembleurs
- Déboguer un programme assembleur
Les modes du x86
- mode protégé
- mode réel
- segmentation en mode protégé
- segmentation en mode réel
- exemple de programme en mode réel
- la table des interruptions et son emplacement)
Cartographie de la RAM d’un PC en mode réel
- accès à la ROM
- accès à la RAM
- accès aux périphériques
- exemples d’accès à un périphérique
- cartographie de la mémoire en mode réel
- affichage en mode réel
Démarrage d’un ordinateur
- À la mise sous tension
- BIOS...
- Secteur de boot d'une disquette, d'un disque (ou USB)
- Un premier process sans interruption du BIOS
Jeu d’instruction du x86
- Structure d’un code machine x86
- Code machine x86 : code des registres
- Visualiser le code machine
- Code machine sur un byte fixe
- Code machine avec valeur immédiate
- Instructions simples
- ModR/M en 32 bits
- Byte SIB
- Préfixes de segmentation
- Préfixes de répétition
- Préfixes de taille
- Exemples...
Coprocesseur mathématique
- Rôle
- Historique
- Architecture et représentation des nombres
- Valeurs extrêmes
- Pile du coprocesseur
- Jeu d’instruction
- Exemples
Évolution des microprocesseurs
- Historique
- Loi de Moore
- Co-processeurs
- Processeurs pipe-line
- Classement SISD, SIMD
- Jeu d’instruction MMX 3DNow!
- Jeu d’instruction SSE
- Processeurs 64 bits
- Processeurs dual core
Bibliographie
- Assembleur X86 (Livre)
- Kip Irvine, Assembleur X86, CampusPress (ISBN: 2-7440-1534-2)
- Assembleur X86 (Livre)
- Jean-Bernard Emond, Assembleur X86, Des bases de la programmation jusqu'à l'interfaçage avec les langages de haut niveau, CampusPress (ISBN: 2-7440-1564-4)