Shown here is the MSP430 interrupt processing. Initially the interrupt service routine (ISR) is pointed to item 2. When an interrupt occurs, the program counter and status register are pushed to the stack, the interrupt vector is moved to the program counter, and the GIE, CPU OFF, OSC OFF and SCG1 bits are cleared in the status register. Also, single-source interrupt flags are automatically cleared. When the interrupt service routine executes the RETI instruction, the status register and the program counter are popped. Notice that inside of the ISR, the low power mode control bits, CPU OFF, OSC OFF and SCG1 are automatically cleared. This automatically takes the MSP430 out of the low power mode that it was in and activates it for code execution. Next, when exiting the ISR, the original status register gets popped off the stack and back into the status register. Therefore, if the interrupt occurred while the MSP430 was in a low power mode, the bits that defined that low power mode will become set again. This automatically puts the MSP430 back into the low power mode that it was in prior to the interrupt.