It is good for programmers to understand what goes on inside a processor. The CPU is at the heart of our career.
What goes on inside the CPU? How long does it take for one instruction to run? What does it mean when a new CPU has a 12-stage pipeline, or 18-stage pipeline, or even a "deep" 31-stage pipeline?
Programs generally treat the CPU as a black box. Instructions go into the box in order, instructions come out of the box in order, and some processing magic happens inside.
As a programmer, it is useful to learn what happens inside the box. This is especially true if you will be working on tasks like program optimization. If you don't know what is going on inside the CPU, how can you optimize for it?
A primer for those with a less formal background.
(Score: 2) by shortscreen on Saturday October 31 2015, @08:49AM
lodsd
mov ebx,eax
mov edx,0x03
shr ebx,6
and edx,ebx
mov eax,0x3C
shr ebx,4
and eax,ebx
add edx,eax
shr ebx,6
mov eax,0xC0
and eax,ebx
add eax,edx
stosb
This shorter code which also uses fewer registers is faster on a 486 but slower on a Core 2:
lodsd
shr ah,4
shr eax,6
shl ax,10
shl eax,14
shr eax,24
stosb