Contenu des cours TD et TP
Partie 1 : Système de numération et arithmétique binaire
Objectif :
- Savoir effectuer les conversion dans les différentes bases
- Savoir comment l’information est représentée en mémoire centrale
- Savoir comment l’arithmétique est réalisée
- Savoir utiliser des opérateurs binaires en C
- Savoir identifier les types de variables et leurs tailles
Cours:
- Les systèmes de numération : décimal, binaire, octal et hexadécimal.
- Conversion entre bases
- Arithmétique binaire (signée et non-signée)
- représentation des flottants et la norme IEEE 754
- Représentation des caractères
Contenu du TD:
- Exercices à réaliser sur feuilles sur les conversions binaires
Contenu du TP:
- Manipuler les opérateurs binaires en langage C
Partie 2 : La mémoire centrale
Objectif :
- Connaître l’organisation de la mémoire
- Connaître l’agencement des octets et leur alignement
Cours:
- Organisation de la mémoire centrale
- Caractéristiques d’une mémoire
- Contraintes d’alignement
- Agencement des octets : Endianness (little et big)
- Principe d’implémentation et câblage (facultatif)
Contenu du TD/TP:
- Exercices à réaliser sur feuilles sur les alignements de mots mémoire et le comportement de la pile
- Expliquer le comportement des programmes C et les choix du compilateur GCC
Partie 3 : Le CPU Intel 80386
Objectif :
- Connaître les différents registres du microprocesseur 80386
- Connaître les instructions du microprocesseur 80386
- Savoir écrire du code en assembleur
- Savoir lire la documentation
- Connaître les modes d’adressage
Contenu du cours:
- Fonctionnement d’un microprocesseur
- Les registres généraux
- Le registre d’état
- Le jeu d’instructions
- Traduire en assembleur les structures conditionnelles et les structures de contrôle
- Les modes d’adressage (adressage absolu, indirect, basé et indexé)
Contenu du TD:
- Exercices sur les registres du processeur
- Écrire des programmes rudimentaires en assembleur sur feuille
- Exercices sur les modes d’adressage
Partie 4 : Assembleur
Objectif :
- Savoir coder en assembleur GNU
- Savoir mettre en place une chaîne de compilation
- Connaître les conventions d’appels de passage de paramètres
- Savoir lire la documentation
- Savoir faire des appels de fonctions de bibliothèque et des systèmes depuis l’assembleur
Contenu du cours:
- Mise en place de la chaîne de compilation (en 32 bits)
- Organisation des fichiers assembleur (sections : text, data et bss)
- Écrire du code assembleur simple (structures conditionnelles et les structures de contrôle)
- Écrire des fonctions en assembleur
- Les conventions GCC appel de fonction assembleur depuis le langage C
- Appeler des fonctions de la glibc
- Utiliser les appels systèmes (en 32 bits)
Contenu du TP:
- Mise en place de la chaîne de compilation (32 bits)
- Écrire des programmes à l’aide de GNU AS
- Écrire des programmes en C qui appellent des fonctions écrites en assembleur
Prérequis
- Savoir écrire des programmes en langage C et utiliser glibc (GNU C Library)
- Savoir utiliser de ligne de commande (bash)
- Savoir utiliser GCC en ligne de commande
- Savoir utiliser d’un éditeur de texte pour écrire du code source (ex: emacs, vim ou autre)
- Savoir utiliser la commande
man
, et identifier les sections
- Savoir différencier un appel système d’une fonction de la bibliothèque standard
- Savoir lire une documentation en anglais