2016-11-30 1 views
0

Pouvez-vous stocker autre chose que des adresses mémoire dans un registre? J'ai essayé de trouver une réponse sur Google mais tout ce que j'ai trouvé c'est que vous pouvez stocker des pointeurs. Cela implique que vous pouvez également stocker d'autres choses, mais comment pouvez-vous stocker une valeur de 64 bits, par exemple, si un registre n'a que 32 bits de long?Registres et pointeurs

+0

Pour le registre de 32 bits, les données de 64 bits devront être scindées en deux registres. –

Répondre

0

Pouvez-vous stocker autre chose que des adresses mémoire dans un registre?

N ° Les registres sont ce que les CPU utilisent actuellement pour fonctionner.

Sur la plupart des architectures que vous connaissez, une CPU ne s'intéresse pas vraiment si le contenu d'un registre est une adresse, ou par exemple un nombre entier pour un calcul. En fait, il est courant de voir les adresses être calculées en quelque sorte ...

Comment pouvez-vous stocker une valeur de 64 bits, par exemple, si un registre n'a que 32 bits de long?

Évidemment, pas dans ce registre. Je ne sais pas de quelle architecture vous parlez, mais pour la bonne architecture de l'architecture 'x86 (think: PCs), il existe différents registres de différentes longueurs, et certains d'entre eux peuvent avoir une longueur de 64 bits ou plus. En outre, si vous utilisez un processeur qui n'a pas de registre suffisamment grand pour votre type de données, vous devrez charger ce type de données dans plusieurs registres ou le traiter de manière séquentielle.

+0

Oui, je faisais référence à l'architecture x86. – couchPotato