0Pricing
Assembly Language & x86 Low-Level Systems Programming · Leçon

Cadres de pile et variables locales

Créez et supprimez des cadres de pile à l’aide du pointeur de base (EBP/RBP) afin d’allouer des variables locales et d’accéder de manière fiable aux paramètres dans les procédures.

Cadres de pile et variables locales est une leçon Assembly Language & x86 Low-Level Systems Programming gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Assembly Language & x86 Low-Level Systems Programming, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Assembly Language & x86 Low-Level Systems Programming comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Why Stack Frames?

A procedure needs space for its own local variables and a stable way to find its parameters. A stack frame gives each call its own private region of the stack.

The Base Pointer

The base pointer (EBP in 32-bit, RBP in 64-bit) provides a fixed reference into the frame, while ESP keeps moving as you push and pop.

The Prologue

A procedure begins by saving the old base pointer and setting up a new frame.

push ebp
mov ebp, esp

Allocating Locals

Reserve space for locals by subtracting from the stack pointer. The locals then live at negative offsets from EBP.

sub esp, 8       ; room for two 4-byte locals

Accessing Locals

Reference each local by a fixed offset below the base pointer.

mov dword [ebp-4], 10   ; first local = 10

Accessing Parameters

With the classic cdecl layout, parameters sit above the saved EBP and return address, at positive offsets.

mov eax, [ebp+8]        ; first argument

The Epilogue

Before returning, restore the stack and base pointer so the caller frame is intact.

mov esp, ebp
pop ebp
ret

The LEAVE Shortcut

The LEAVE instruction performs mov esp, ebp then pop ebp in one step, a compact epilogue.

leave
ret

Frame Layout Map

From high to low addresses in a typical frame:

  • Parameters [ebp+8], [ebp+12]
  • Return address [ebp+4]
  • Saved EBP [ebp]
  • Locals [ebp-4], [ebp-8]

Why Save EBP?

Each call saves the callers EBP so nested calls can each have a valid frame and the chain can be unwound, which debuggers use to print stack traces.

Frame Pointer Omission

Optimizing compilers may skip EBP setup to free a register, addressing locals relative to ESP instead. This is faster but harder to debug.

Quick Check

Test your understanding of stack frames.

Recap

You learned stack frames:

  • Prologue: push ebp, mov ebp, esp
  • Reserve locals with sub esp, access at [ebp-N]
  • Parameters at [ebp+N]
  • Epilogue restores frame; LEAVE is the shortcut

Questions Fréquemment Posées

La leçon « Cadres de pile et variables locales » est-elle gratuite ?

Oui — le texte complet de « Cadres de pile et variables locales » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Assembly Language & x86 Low-Level Systems Programming, passe à CoddyKit PRO. Le cours Assembly Language & x86 Low-Level Systems Programming comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Cadres de pile et variables locales » ?

Créez et supprimez des cadres de pile à l’aide du pointeur de base (EBP/RBP) afin d’allouer des variables locales et d’accéder de manière fiable aux paramètres dans les procédures. Tu pratiques Assembly Language & x86 Low-Level Systems Programming avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Assembly Language & x86 Low-Level Systems Programming ?

Aucune expérience préalable n'est requise. Assembly Language & x86 Low-Level Systems Programming sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Cadres de pile et variables locales » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Assembly Language & x86 Low-Level Systems Programming ?

Oui. Chaque leçon Assembly Language & x86 Low-Level Systems Programming inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Principes fondamentaux de la pile d’appels
  2. Définition et appel de procédures
  3. Transmission des arguments et valeurs de retour
  4. Cadres de pile et variables locales
← Retour à Assembly Language & x86 Low-Level Systems Programming