Many applications today are developed in high-level C code. To achieve the highest C code efficiency, first consider what a compiler wants. Compilers prefer instruction set orthogonality and many registers that operate identically to be free to allocate resources without restrictions. Compilers also use the stack for passing parameters and for storing temporary variables. With these facts and guidelines, the MSP430 architecture was developed as follows: 1) Orthogonal instruction set – although the MSP430 architecture implements only 27 instructions, every instruction is usable with every addressing mode throughout the entire memory map. This enables a very compact instruction set to implement a very large feature set with a strongly simplified, lower cost and lower power CPU.