This document describes the layout of memory in a program. The stack holds local variables and grows downward, unused memory is available for use, the heap grows upward for dynamic memory allocation, .bss is zero-initialized global variables, .data holds initialized global variables, and .text contains program code and constants.