October 2018
Beginner to intermediate
436 pages
9h 36m
English
The stack is a memory space where data is temporarily stored. Adding and removing data in the stack is in a first-in-last-out method. Subroutines compiled from programs in C initially allocate space in the stack, called a stack frame, for its uninitialized variables. The address of the top of the stack is stored in the ESP register:

The stack is controlled by two common instructions: PUSH and POP.
PUSH decreases the top-of-stack address by a DWORD size, for a 32-bit address space, then stores the value from its operand.
Consider the following as an example: PUSH 1
If the top of the stack, stored in ESP, is at address
Read now
Unlock full access