As a CS beginner, I know that the CPU has some hardware called register that used to store temporary variables. But I also see x86 assembly code has the "register" conception like %EAX, %ECX. Wondering what's the difference here, or are they the same thing or do they have any relationships?