Нет универсального ответа на этот вопрос. Очевидно, вам понадобится для большинства бит, чтобы сохранить количество регистров. Итак, если у вас 12 регистров, вам понадобится 4 бита (2^4 == 16).
Но набор инструкций может обрабатывать некоторые регистры по-разному (например, иметь инструкции, которые неявно адресуют только конкретный регистр, см. LOOP
для x86). Таким образом, у процессора может быть 9 регистров, но поскольку к нему можно получить доступ только с помощью специальной инструкции, вам потребуется всего 3 бита для адресации остальных 8. Кроме того, некоторые инструкции могут допускать только определенное подмножество регистров, что также уменьшает количество биты, необходимые для их устранения (например, инструкция позволяет работать только с регистрами 0-3).
И чтобы сделать его еще более сложным, есть register windows, которые только делают подмножество физических регистров, доступных для набора инструкций.
Это звучит как домашнее задание, особенно последняя часть. Если вы не можете понять, что это такое, вам действительно нужен кусок бумаги и сесть, чтобы подумать. – DarkDust
Обратите внимание, что ISA x86 не использует инструкции фиксированного размера. Если вас интересуют детали кодирования команд на x86, прочитайте руководство по разработке программного обеспечения Intel (http://www.intel.com/content/www/us/en/processors/architectures-software-developer- manuals.html) (раздел о байтах ModR/M может представлять для вас особый интерес). – Michael
@DarkDust Я просто следую учебнику, и мне интересно, как они получают наименьшее количество бит. – ethane