This spilling effect depends on the number of hidden registers used to buffer top-of-stack values, upon the frequency of nested procedure calls, and upon host computer interrupt processing rates.
12.
Such fundamental topics as binary arithmetic, memory allocation, stack processing, character set encoding, interrupt processing, and compiler design would be hard to study in detail without a grasp of how a computer operates at the hardware level.
13.
An "'End Of Interrupt "'( "'EOI "') is a signal sent to a Programmable Interrupt Controller ( PIC ) to indicate the completion of interrupt processing for a given interrupt.
14.
Note that the processor does not push the accumulator and index registers on to the stack & mdash; code in the interrupt handler must perform that task, as well as restore the registers at the termination of interrupt processing, as necessary.
15.
For example, the highest vector in the ISR . Also, EOIs may be sent at the end of interrupt processing by an interrupt handler, or the operation of a PIC may be set to " auto-EOI " at the start of the interrupt handler.
16.
Ways to reduce such context / restore latency include having relatively few registers in their central processing units ( undesirable because it slows down most non-interrupt processing substantially ), or at least having the hardware not save them all ( this fails if the software then needs to compensate by saving the rest " manually " ).
17.
On stack machines, temporary values often get spilled into memory, whereas on machines with many registers these temps usually remain in registers . ( However, these values often need to be spilled into " activation frames " at the end of a procedure's definition, basic block, or at the very least, into a memory buffer during interrupt processing ).