Il n'y a pas de réponse universelle à cela. Évidemment, vous aurez besoin de plus de bits assez pour stocker le nombre de registres. Donc si vous avez 12 registres, vous aurez besoin de 4 bits (2^4 == 16).
Mais un jeu d'instructions pourrait traiter certains registres de différentes manières (par exemple, avoir des instructions qui ne concernent implicitement qu'un registre spécifique, voir LOOP
pour x86). Ainsi, une CPU peut avoir 9 registres, mais comme on ne peut y accéder qu'avec une instruction spécialisée, il suffit de 3 bits pour adresser les 8 autres. De plus, certaines instructions ne permettent qu'un certain sous-ensemble de registres, réduisant ainsi la quantité de bits nécessaires pour les traiter (par exemple, une instruction ne permet que de fonctionner sur les registres 0-3).
Et pour le rendre encore plus compliqué, register windows rend seulement un sous-ensemble des registres physiques disponibles pour le jeu d'instructions.
Cela ressemble à des devoirs, surtout la dernière partie. Si vous n'arrivez pas à comprendre, vous avez vraiment besoin d'un morceau de papier et vous vous asseyez pour réfléchir. – DarkDust
Notez que l'ISA x86 n'utilise pas d'instructions de taille fixe. Si vous êtes intéressé par les détails de l'encodage des instructions sur le x86, lisez le [Manuel du développeur de logiciels Intel] (http://www.intel.com/content/www/fr/processors/architectures-software-developer- manuals.html) (la section sur les octets ModR/M pourrait vous intéresser particulièrement). – Michael
@DarkDust Je suis juste en train de suivre un manuel et je me demande comment ils obtiennent le moins de bits nécessaires. – ethane