CPU mainly two types, RISC and CISC. We list Intel and ARM here.
Look at the CPU instruction set, we will understand more about how the software should be written.
We will find odd in ARM CPU instruction why there is no DIVIDE instruction? Why INTEL having so many those instructions (BSF) we might never use in our ordinary lives.
http://www.penguin.cz/~literakl/intel/intel.html
http://www.intel.com/products/processor/manuals/
CPU is very dumm, it just a binary excutor, program counter keep incrementing, instruction and its data kept being read from the memory, so that the reading to be kept up, we cache them and even predict them, pipe them up line. so that we keep CPU being busy, we efficiently use register.
http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf