The organization of memory in MIPS systems is conventional. A
program's address space is composed of three parts (see
Figure 5).
At the bottom of the user address space (0x400000) is the text
segment, which holds the instructions for a program.
Above the text segment is the data segment (starting at 0x10000000),
which is divided into two parts. The static data portion contains
objects whose size and address are known to the compiler and linker.
Immediately above these objects is dynamic data. As a program
allocates space dynamically (i.e., by malloc), the sbrk
system call moves the top of the data segment up.
The program stack resides at the top of the address space
(0x7fffffff). It grows down, towards the data segment.