Nie są do końca takie same. Rejestry to miejsca, w których znajdują się wartości, nad którymi procesor faktycznie pracuje. Konstrukcja procesora jest taka, że jest w stanie modyfikować lub w inny sposób oddziaływać na wartość, gdy jest ona w rejestrze. Rejestry mogą więc działać logicznie, podczas gdy pamięć (w tym pamięć podręczna) może przechowywać tylko wartości, z których procesor odczytuje i zapisuje dane.
Wyobraź sobie stolarza w pracy. Ma w rękach kilka przedmiotów (rejestrów), a następnie bardzo blisko na swoim stole warsztatowym (pamięci podręcznej) rzeczy, nad którymi często pracuje, ale nie wykorzystuje w tym momencie, a następnie w warsztacie (pamięć główna) rzeczy, które dotyczą projekt, który nie jest od razu wystarczająco ważny, aby znaleźć się na stole warsztatowym.
EDYCJA: Oto proste wyjaśnienie działania logiki rejestru.
Wyobraźmy sobie, że mamy cztery rejestry o nazwie R1..R4. Jeśli skompilujesz instrukcję, która wygląda następująco:
x = y + z * 3;
kompilator wyświetli kod maszynowy, który (po zdemontowaniu) wygląda mniej więcej tak:
LOAD R1, ADDRESS_Z //move the value of Z into register 1
MUL R1, 3 //multiply the value of register 1 by 3
LOAD R2, ADDRESS_Y //move the value of Y into register 2
ADD R1, R2 //adds the value in R2 to the value in R1
STORE R1, ADDRESS_X //move the value of register 1 into X
Ponieważ większość współczesnych procesorów ma rejestry o szerokości 32 lub 64 bitów, mogą wykonywać obliczenia matematyczne na dowolnej wartości do wielkości, którą mogą pomieścić. Nie potrzebują specjalnych rejestrów dla mniejszych wartości; po prostu używają specjalnych instrukcji ASM, które nakazują korzystanie tylko z części rejestru. I podobnie jak stolarz posiadający dwie ręce, rejestry mogą jednocześnie przechowywać niewielką ilość danych, ale można je ponownie wykorzystać, przekazując i usuwając z nich aktywne dane, co oznacza, że „wiele rejestrów” nie w końcu są potrzebne. (Dużo dostępnych zasobów pozwala oczywiście kompilatorom na generowanie szybszego kodu, ale nie jest to absolutnie konieczne).