Alors pour mettre tapé la programmation d'un microcontrolleur et de la traduction de l'assembleur vers langage machine en dur, je vais essayer d'éclaicir ce que c'est qu'un registre. (Pour info, 4ème d'école d'ing en info, on passe par là).
En fait, voit tu, chaque opération que tu demandes à ton "ordinateur" (console, pc, ...) de faire, est ensuite divisé en plus petite portion d'instruction : l'assembleur. Cet assembleur n'est pourtant pas digeste pour le processeur. Il va donc le retraduire pour effectuer les opérations demandées : le langage machine.
Par exemple, pour faire 2+3, tu vas devoir stocker les valeurs 2 et 3 dans des registres, c'est là où ils rentrent en jeu. Les 32, 64 bits correspondent donc à la taille de ces cases (registres) où l'on peut ranger ces informations.
Il faudra stocker le 2 dans un registre, le 3 dans un autre, et le resultat dans un troisième.
Le problème de la RAM est donc là. Quand on veut accéder à de la mémoire (RAM à tout hasard), il faut lui donner une adresse où chercher. Avec 32 bits, on ne pouvait que chercher jusqu'à 2^32 octets soit un peu plus de 3go. On ne pouvait pas aller plus loin chercher dans la RAM, car on ne connaissait simplement pas le chemin pour y aller.