Zero page

In early computers, such as the PDP-8, the zero page had a special fast addressing mode, which facilitated its use for temporary storage of data and compensated for the paucity of CPU registers.

Since zero page locations could be addressed by a single byte, the instructions accessing them could be shorter and hence faster-loading.

To offset this limitation and gain a performance advantage, the 6502 is designed to make special use of the zero page, providing instructions whose operands are eight bits, instead of 16, thus requiring fewer memory fetch cycles.

Some computer architectures still reserve the beginning of address space for other purposes, though; for instance, Intel x86 systems reserve the first 256 double-words of address space for the interrupt vector table (IVT) if they run in real mode.

A similar technique of using the zero page for hardware related vectors was employed in the ARM architecture.

This is especially problematic if the zero page area is used to store system jump vectors and the firmware is tricked into overwriting them.

[3] Contrary to the zero page's original preferential use, some modern operating systems such as FreeBSD, Linux, Solaris, macOS, and Microsoft Windows[4] actually make the zero page inaccessible to trap uses of null pointers.