Choisissez votre langue
Cours Assembleur
Plus de 2 millions d'étudiants dans le monde

Cours Assembleur

Allez au-delà des langages de haut niveau et prenez le contrôle total du matériel. Ce cours d'assembleur vous enseigne l'assembleur x86-64 depuis les bases — registres, mémoire, contrôle de flux, conventions d'appel et optimisation SIMD. Vous écrirez de véritables programmes, interagirez avec le C et analyserez du code binaire comme un professionnel.

Dedika pour les entreprises

Ce que vous allez apprendre:

Vous commencerez par les fondamentaux de l'architecture CPU et les systèmes de numération, puis vous aborderez l'intégralité du jeu d'instructions x86-64 couvrant le déplacement de données, l'arithmétique, la logique et le contrôle de flux. Vous maîtriserez les appels de procédure, la gestion de la pile et les conventions d'appel standard pour Linux et Windows. Le cours traite des structures de données en assembleur, des systèmes de macros et de l'organisation de projets multi-fichiers. Vous apprendrez également la vectorisation SIMD, l'optimisation du cache et le réglage des performances au niveau des instructions. Du matériel supplémentaire couvre le débogage, le rétro-ingénierie, l'interaction avec le système d'exploitation via les appels système, la programmation embarquée sans système d'exploitation et les pratiques professionnelles, y compris les tests et la revue de code.

Comment vous étudiez de façon pratique Cours Assembleur

Comment vous pratiquez Cours Assembleur

Pour vous, entreprise, qui souhaitez former votre équipe

Avec Dedika pour les entreprises, le cours inclut des exercices et des exemples adaptés à votre activité et aux besoins spécifiques de votre entreprise.

Cliquez ici

Contenu du cours

8 Chapitres • 36 LeçonsDurée entre 4 et 360 heures (vous décidez)

Chapitre 1Voir les détails

Fondements du langage assembleur

  • Leçon 1 • Notions essentielles d'architecture informatique

    Couvre les composants du CPU, le cycle de fetch-décode-exécution et la hiérarchie mémoire. Établit le contexte matériel qui donne son sens au langage assembleur.

  • Leçon 2 • Systèmes de numération et représentation des données

    Enseigne le binaire, l'octal, l'hexadécimal et l'arithmétique en complément à deux. Fournit la maîtrise numérique nécessaire pour lire et écrire correctement les opérandes assembleur.

  • Leçon 3 • Langage assembleur vs. langages de haut niveau

    Met en contraste les niveaux d'abstraction, les pipelines de compilation et les compromis de performance. Explique pourquoi la programmation de bas niveau reste pertinente dans les systèmes modernes.

  • Leçon 4 • Aperçu de la chaîne d'outils assembleur

    Présente les assembleurs, les éditeurs de liens, les chargeurs et les débogueurs comme une chaîne d'outils unifiée. Les configurent un environnement de développement fonctionnel à la fin de cette section.

Chapitre 2Voir les détails

Registres, mémoire et adressage

  • Leçon 1 • Organisation et segmentation de la mémoire

    Décrit le modèle mémoire plat, la stack, le tas et les segments de code dans l'espace d'adressage d'un processus. Ancre les étudiants dans l'endroit où vivent les données avant l'introduction des modes d'adressage.

  • Leçon 2 • Modes d'adressage en profondeur

    Couvre l'adressage immédiat, par registre, direct, indirect, base-plus-décalage et à index mis à l'échelle. Les étudiants sélectionnent le mode correct pour tout modèle d'accès aux données donné.

  • Leçon 3 • Registres de drapeaux et d'état

    Explique le registre EFLAGS/RFLAGS et les bits de drapeaux individuels définis par les opérations arithmétiques et logiques. Prépare les étudiants aux branchements conditionnels dans les chapitres suivants.

  • Leçon 4 • Jeu de registres à usage général

    Détaille les huit registres à usage général 64 bits hérités et étendus ainsi que leurs utilisations conventionnelles. Relie la connaissance des registres à la spécification des opérandes dans les instructions.

Chapitre 3Voir les détails

Jeu d'instructions principal

  • Leçon 1 • Instructions sur chaînes et blocs

    Présente MOVS, STOS, LODS, SCAS et CMPS avec les préfixes REP pour les opérations de données en masse. Fait le lien avec les modèles de manipulation mémoire efficace utilisés dans les programmes réels.

  • Leçon 2 • Instructions de déplacement de données

    Enseigne les sémantiques et contraintes de MOV, MOVZX, MOVSX, LEA, XCHG, et PUSH/POP. Forme la base de toute utilisation ultérieure des instructions.

  • Leçon 3 • Instructions logiques et bit à bit

    Explique AND, OR, XOR, NOT, TEST, et CMP ainsi que leur comportement de modification des drapeaux. Permet aux étudiants de mettre en œuvre des opérations de masquage, de basculement et de comparaison.

  • Leçon 4 • Instructions arithmétiques

    Couvre ADD, SUB, MUL, IMUL, DIV, IDIV, INC, DEC, et NEG avec leurs effets sur les drapeaux. Les étudiants mettent en œuvre des routines arithmétiques sur les entiers et gèrent les conditions de débordement.

  • Leçon 5 • Instructions de décalage et de rotation

    Enseigne SHL, SHR, SAR, ROL, ROR, RCL et RCR avec interaction du drapeau de retenue. Les étudiants utilisent les décalages pour la multiplication rapide, la division et l'extraction de champs de bits.

Chapitre 4Voir les détails

Flux de contrôle et branchements

  • Leçon 1 • Sauts inconditionnels et étiquettes

    Couvre les formes d'instruction JMP, la définition d'étiquette et le codage des sauts courts vs. proches vs. lointains. Établit les mécanismes de manipulation du compteur de programme.

  • Leçon 2 • Constructions de boucle et instruction LOOP

    Enseigne les instructions LOOP, LOOPE et LOOPNE avec le comptage basé sur CX/ECX/RCX. Les étudiants mettent en œuvre des boucles comptées et comparent l'efficacité avec les alternatives Jcc.

  • Leçon 3 • Modèles de flux de contrôle structurés

    Traduit les modèles while, do-while, for et switch en séquences assembleur idiomatiques. Renforce la discipline des noms d'étiquettes clairs et de la chute à travers.

  • Leçon 4 • Instructions de saut conditionnel

    Mappe tous les mnémoniques Jcc à leurs conditions de drapeau pour les comparaisons signées et non signées. Les étudiants mettent en œuvre des structures if-else et de type switch en assembleur.

Chapitre 5Voir les détails

Procédures, stack et conventions d'appel

  • Leçon 1 • Architecture et opérations de la stack

    Explique le pointeur de stack, le pointeur de base, les mécanismes de push/pop et la direction de croissance de la stack. Fournit le modèle mental nécessaire pour comprendre les trames de procédure.

  • Leçon 2 • Conventions d'appel

    Couvre l'ABI System V AMD64 et la convention d'appel Windows x64 : registres d'arguments, espace d'ombre et valeurs de retour. Permet une interopérabilité correcte entre C et l'assembleur.

  • Leçon 3 • Trames de stack et variables locales

    Enseigne les motifs de prologue et d'épilogue, la configuration du pointeur de trame et l'allocation des variables locales. Les étudiants construisent des procédures avec une gestion correcte des trames.

  • Leçon 4 • Mécanismes de CALL et RET

    Détaille comment CALL pousse l'adresse de retour et RET la dépile, y compris les variantes proches et lointaines. Les étudiants tracent le flux d'exécution à travers les appels de procédure imbriqués.

  • Leçon 5 • Procédures récursives

    Met en œuvre des algorithmes récursifs en assembleur, en gérant explicitement la profondeur de la stack et les cas de base. Renforce la discipline de trame sous des auto-appels répétés.

Chapitre 6Voir les détails

Structures de données en assembleur

  • Leçon 1 • Tableaux et accès indexé

    Couvre la disposition des tableaux unidimensionnels et multidimensionnels, la mise à l'échelle de la taille des éléments et la vérification des limites. Relie l'adressage à index mis à l'échelle au parcours réel de tableaux.

  • Leçon 2 • Listes chaînées et structures dynamiques

    Met en œuvre le parcours, l'insertion et la suppression de listes simplement et doublement chaînées en assembleur. Démontre le chaînage dynamique de pointeurs sans le support d'un langage de haut niveau.

  • Leçon 3 • Pointeurs et arithmétique des pointeurs

    Enseigne le déréférencement de pointeur, l'arithmétique des pointeurs et les gardes de pointeur nul en assembleur. Fait le pont entre la sémantique des pointeurs C et les schémas d'accès mémoire en assembleur.

  • Leçon 4 • Structures et disposition des enregistrements

    Explique les décalages de champs de structure, le bourrage d'alignement et le calcul de taille en assembleur. Les étudiants définissent et accèdent aux champs de structure en utilisant l'adressage base-plus-décalage.

Chapitre 7Voir les détails

Macros, directives et assembleur modulaire

  • Leçon 1 • Projets multifichiers et édition de liens

    Explique les directives GLOBAL, EXTERN et PUBLIC pour la visibilité des symboles entre fichiers. Les étudiants construisent et lient correctement des projets assembleur multimodules.

  • Leçon 2 • Directives de l'assembleur

    Couvre les directives de définition de données (DB, DW, DD, DQ), les déclarations de section et les directives d'alignement. Enseigne comment les directives contrôlent la disposition du fichier objet.

  • Leçon 3 • Bibliothèques de macros structurées

    Organise les macros réutilisables dans des fichiers include et applique les gardes d'inclusion. Établit des pratiques professionnelles d'organisation du code pour les grands projets assembleur.

  • Leçon 4 • Définition et expansion de macros

    Enseigne la syntaxe des macros sur une seule ligne et sur plusieurs lignes, les paramètres et les étiquettes locales. Les étudiants remplacent les blocs de code répétitifs par des macros paramétrées.

  • Leçon 5 • Assemblage conditionnel

    Utilise les directives IF, IFDEF, IFNDEF, ELSE et ENDIF pour produire des chemins de code spécifiques à une plateforme. Permet à un seul fichier source de cibler plusieurs configurations.

Chapitre 8Voir les détails

Sujets avancés et optimisation

  • Leçon 1 • Profilage et analyse de performance

    Utilise les compteurs de performance, l'inspection du désassemblage et l'analyse comparative pour identifier les goulets d'étranglement. Les étudiants itèrent sur le code assembleur guidés par des données de profilage quantitatives.

  • Leçon 2 • Optimisation du cache et de la mémoire

    Enseigne la connaissance des lignes de cache, les instructions de préchargement et la disposition des données pour la localité spatiale. Les étudiants restructurent les schémas d'accès aux données pour minimiser les échecs de cache.

  • Leçon 3 • Assembleur en ligne dans les programmes C

    Couvre la syntaxe d'assembleur en ligne étendue de GCC : contraintes, listes de clobber et qualificateurs volatile. Les étudiants intègrent des extraits assembleur optimisés dans des fichiers sources C.

  • Leçon 4 • Instructions SIMD et vectorielles

    Présente les registres SSE2 et AVX2, les types de données et les instructions arithmétiques tassées. Les étudiants vectorisent des boucles scalaires pour traiter plusieurs éléments de données par cycle.

  • Leçon 5 • Optimisation au niveau des instructions

    Applique l'ordonnancement des instructions, l'allocation de registres et le déroulage de boucles pour réduire la latence. Les étudiants réécrivent les boucles chaudes en utilisant les données de pipeline du CPU et de débit.

Certification

Votre certificat valide de réussite

Ce cours est fait pour vous :

  • Développeur C/C++ : souhaite comprendre ce que le compilateur produit sous le capot.

  • Étudiant en informatique : doit relier la théorie des cours au comportement matériel réel.

  • Chercheur en sécurité : doit lire et raisonner sur les binaires compilés lors de l'analyse de vulnérabilités.

  • Programmeur de jeux ou graphique : recherche un contrôle au niveau des instructions pour extraire des performances supplémentaires.

  • Amateur de systèmes embarqués : souhaite programmer des microcontrôleurs et des périphériques sans les abstractions du système d'exploitation.

  • Personne en reconversion professionnelle : construit un portfolio en programmation système pour accéder à des postes d'ingénierie de bas niveau.

Ce que disent nos apprenants

Vos cours sont parfaits. J'ai acheté le forfait d'un an et j'ai enfin l'opportunité de suivre divers sujets qui m'intéressent sans avoir besoin de changer de plateforme... je vous remercie pour tout ce que vous faites, je vous ai déjà recommandés à d'autres personnes...
Giulio Carlo
Giulio CarloÉtudiant en Marketing Digital
J'aime la façon dont les leçons vont droit au but et comment je peux changer de chapitres et passer le contenu dont je n'ai pas besoin.
Mariana Ferres
Mariana FerresÉtudiante en Photographie
J'aime le contenu et la façon dont les vidéos sont présentées et transcrites, ce qui accélère le processus !
Luciana Alvarenga
Luciana AlvarengaÉtudiante en Design d'Ongles
La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.
André Felipe
André FelipeÉtudiant en Ingénierie de Prompt

Formations principales

FAQ

Qui est Dedika ?

Le certificat est-il valable en France ?

Les cours sont-ils gratuits ?

Quelle est la charge de travail des cours ?

Comment sont les cours ?

Comment fonctionnent les cours ?

Quelle est la durée des cours ?

Quel est le coût ou le prix des cours ?

Qu'est-ce qu'un cours EAD ou en ligne et comment ça marche ?

Cours PDF