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

Cours Assembleur

Dépasse les langages de haut niveau et prends le contrôle total du matériel. Ce cours d'assembleur t'enseigne l'assembleur x86-64 de A à Z — registres, mémoire, contrôle de flux, conventions d'appel et optimisation SIMD. Tu écriras de vrais programmes, tu interfaceras avec le C et tu analyseras le code binaire comme un professionnel.

Dedika pour entreprises

Ce que vous allez apprendre:

Tu commenceras par les principes fondamentaux de l'architecture des CPU et les systèmes de numération, puis tu aborderas l'ensemble complet du jeu d'instructions x86-64 couvrant le déplacement de données, l'arithmétique, la logique et le contrôle de flux. Tu maîtriseras les appels de procédure, la gestion des trames de pile et les conventions d'appel standard pour Linux et Windows. Le cours couvre les structures de données en assembleur, les systèmes de macros et l'organisation de projets multifichiers. Tu apprendras également la vectorisation SIMD, l'optimisation du cache et le réglage des performances au niveau des instructions. Le matériel supplémentaire couvre le débogage, la rétro-ingénierie, l'interaction avec le système d'exploitation via les appels système, la programmation embarquée sur métal nu et les pratiques professionnelles, y compris les tests et la révision 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 entreprises, le cours inclut des exercices et des exemples adaptés à votre propre entreprise et à ses besoins spécifiques.

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 système

    Couvre les composants du CPU, le cycle de recherche-décodage-exécution et la hiérarchie de la 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 les systèmes binaire, octal, 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 en assembleur.

  • Leçon 3 • Assembleur vs langages de haut niveau

    Compare 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 de l'assembleur

    Présente les assembleurs, les éditeurs de liens, les chargeurs et les débogueurs comme une chaîne d'outils unifiée. Les étudiants configurent un environnement de développement fonctionnel d'ici 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 de mémoire plat, la pile, le tas et les segments de code dans un espace d'adressage de processus. Prépare les étudiants à comprendre où se trouvent 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éplacement 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 d'indicateurs et d'état

    Explique le registre EFLAGS/RFLAGS et les bits d'indicateur individuels définis par les opérations arithmétiques et logiques. Prépare les étudiants au branchement conditionnel dans les chapitres suivants.

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

    Détaille les huit registres à usage général 64 bits hérités et étendus et 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 de base

  • Leçon 1 • Instructions sur chaîne et bloc

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

  • Leçon 2 • Instructions de mouvement de données

    Enseigne les instructions MOV, MOVZX, MOVSX, LEA, XCHG et PUSH/POP, leur sémantique et leurs contraintes. 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 et leur comportement de définition d'indicateur. 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 indicateurs. 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 avec l'indicateur de retenue. Les étudiants utilisent les décalages pour la multiplication, la division rapide et l'extraction de champs de bits.

Chapitre 4Voir les détails

Contrôle de flux et branchement

  • Leçon 1 • Sauts inconditionnels et étiquettes

    Couvre les formes de l'instruction JMP, la définition d'étiquettes et le codage des sauts courts, proches et lointains. Établit la mécanique de la 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 contrôle de flux structurés

    Traduit les modèles while, do-while, for et switch en séquences d'assembleur idiomatiques. Renforce le nommage clair des étiquettes et la discipline de passage en séquence.

  • Leçon 4 • Instructions de saut conditionnel

    Fait correspondre tous les mnémoniques Jcc à leurs conditions d'indicateur 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, pile et conventions d'appel

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

    Explique le pointeur de pile, le pointeur de base, les mécanismes push/pop et la direction de croissance de la pile. 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 pile et variables locales

    Enseigne les modèles 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 retracent le flux d'exécution à travers les appels de procédure imbriqués.

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

    Implémente des algorithmes récursifs en assembleur, en gérant la profondeur de la pile et les cas de base de manière explicite. Renforce la discipline des trames 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 à l'index mis à l'échelle au parcours réel de tableaux.

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

    Implémente le parcours, l'insertion et la suppression de listes simplement et doublement chaînées en assembleur. Démontre le suivi dynamique des 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 en C et les modèles 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 la taille en assembleur. Les étudiants définissent et accèdent aux champs de structure en utilisant l'adressage base-plus-déplacement.

Chapitre 7Voir les détails

Macros, directives et programmation modulaire en assembleur

  • Leçon 1 • Projets multi-fichiers et édition de liens

    Explique les directives GLOBAL, EXTERN et PUBLIC pour la visibilité des symboles entre fichiers. Les étudiants construisent et éditent correctement des projets en assembleur multi-modules.

  • 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 d'inclusion et applique les gardes d'inclusion. Établit des pratiques professionnelles d'organisation du code pour les grands projets en 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 goulots 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 sensibilisation à la ligne de cache, les instructions de préchargement et la disposition des données pour la localité spatiale. Les étudiants restructurent les modèles 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 de l'assembleur en ligne étendue de GCC : contraintes, listes de registres détruits et qualificateurs volatile. Les étudiants intègrent des extraits d'assembleur optimisés à l'intérieur de fichiers source 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 compacté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 des registres et le déroulage de boucles pour réduire la latence. Les étudiants réécrivent les boucles fréquentes en utilisant les données de pipeline et de débit du CPU.

Certification

Votre certificat valide de réussite

Ce cours est pour vous :

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

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

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

  • Développeur de jeux ou d'infographie : cherche un contrôle au niveau des instructions pour extraire des performances supplémentaires.

  • Passionné de systèmes embarqués : veut 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 entrer dans des postes d'ingénierie de bas niveau.

Ce que nos apprenants disent

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 à 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 Numérique
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 il est présenté ainsi que la transcription des vidéos, 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 au Canada ?

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 fonctionne?

Cours PDF