could be smaller and faster loading. For example, the MOS Technology 6502 has only one general purpose register (the accumulator). To offset this weakness and gain a performance advantage, it was designed to make special use of the zero page, providing special instructions that are smaller, thus requiring fewer memory fetch cycles and executing faster. Many instructions are coded differently for zero page and non-zero page addresses, this is called zero-page addressing in 6502 terminology (it was called direct addressing in 6800 terminology): LDA $00 ; zero page LDA $0000 ; non-zero page The above two instructions both accomplish the same thing: they load the value of memory location $00 into the .A register (accumulator). However, the first instruction is only two bytes long and requires three clock cycles to complete. The second instruction is three bytes in length and requires four clock cycles to execute. This difference in execution time could become significant in repetitive code. Some CPUs like the Motorola 6809 extend this concept by allowing fast accesses to whichever 256-byte page, the so called direct page, is selected by a special 8-bit "Direct Page" (DP) register. This is called direct page addressing. Null pointers Contrary to the zero page's original preferential use, some modern operating systems such as FreeBSD, Linux and Microsoft Windows actually make the zero page inaccessible to trap uses of null pointers. Such pointer values may legitimately indicate uninitialized values or sentinel nodes, but they do not point to valid objects. Buggy code may try to access an object via a null pointer, and this can be trapped at the operating system level as a memory access violation. Interrupt vectors 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. In badly written programs this could lead to "ofla" behaviour, where a program tries to read information from an unintended memory area, and treats executable code as data or vice versa. This is especially problematic if the zero page area is used to store system jump vectors and the firmware is tricked into overwriting them. CP/M In 8-bit CP/M, the zero page is used for communication between