Processor Modes

CPU Switching from one mode to another takes time. Therefore is is better programming practice to group similar kind of instructions together.

Ex: The Pentium MMX processor provided enhanced instruction set for multimedia support. However the processor had to be switched into different mode before the mmx instruction could be executed.

main(){
int i,j,k;
someMMX_Instruction1;
I+=j/j*(j-j);
Printf("Enter NO");
someMMX_Instruction2;
scanf(...);
someMMX_Instruction3;
.
.
.
}
 
This code is an un-optimized code since in every alternate instruction CPU switches mode and thus consumes time uselessly. A smart compiler may optimize it by itself. However, relying on the compiler is not always a good option. (As all of us are still waiting for an AI enabled compiler)

I/O is done by OS, System calls involve CPU mode switching. So same holds true for I/O, DMA ( Direct Memory Access) and PIC ( Programmable Interrupt Controller )calls also.