© The Author(s), under exclusive license to APress Media, LLC, part of Springer Nature 2023
D. VostokovFoundations of Linux Debugging, Disassembling, and Reversinghttps://doi.org/10.1007/978-1-4842-9153-5_10

10. Frame Pointer and Local Variables

Dmitry Vostokov1  
(1)
Dublin, Ireland
 

Stack Usage

In addition to storage for return addresses of CALL instructions, a stack is used to pass additional parameters to functions and store local variables. The stack is also used to save and restore values held in registers when we want to preserve them during some computation or across function calls. For example, suppose we want to do multiplication, but at the same time, we have other valuable data in registers %RAX and %RDX. The multiplication result will overwrite ...

Get Foundations of Linux Debugging, Disassembling, and Reversing: Analyze Binary Code, Understand Stack Memory Usage, and Reconstruct C/C++ Code with Intel x64 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.