Регистры не хранят "4-значное основание 16 цифр" , вот как вы можете интерпретировать содержимое такого регистра (кажется, вы имеете в виду 16-битный регистр, который при интерпретации как шестнадцатеричное целое число)может хранить значения 0000..FFFF).
Но сами регистры реализуются в HW из битов (значение 0 или 1).16-битный регистр имеет 16 бит.Ничего о цифрах, шестнадцатеричном и т. Д. ... это все особенности конкретной интерпретации, и интерпретация выполняется либо кодом, использующим значение в регистре, либо инструментами, используемыми для просмотра содержимого регистра.
В любом случае, «адресация»Регистрация не имеет никакого отношения к возможностям регистрации контента!Вопрос состоит в том, чтобы адресовать 12 регистров, поэтому для простоты вы можете начать с присвоения им имен / адресов, таких как 0,1,2, .., 11 - сколько бит должно быть зарезервировано для их кодирования?
Сколькоинформация может хранить 1 бит?0 или 1 = 2 варианта.
Два бита могут хранить эти битовые комбинации 00, 01, 10, 11 = 4 варианта.
Три бита могут хранить 000, 001, 010, 100, 011101, 110, 111 = 8 вариантов.(обратите внимание, что вы бы интерпретировали эти биты как целочисленное значение, закодированное в двоичном виде, я написал 0, 1, 2, 4, 3, 5, 6, 7 ... в этом (не) порядке ... но при проектировании процессоравам вряд ли придется интерпретировать биты выбора регистра как целое число, это больше похоже на «сопоставление с образцом», если регистр «example1» имеет шаблон 101 внутри ЦП, тогда ассемблер должен преобразовать исходный код в машинный код)
etc ...
Очень часто содержимое регистра показывается в виде шестнадцатеричных значений, потому что тогда 1 цифра состоит из 4 битов, поэтому программист, отлаживающий код, может легко «увидеть» отдельные биты, если ему нужноэто, но «шестнадцатеричное число» является только интерпретацией битовой комбинации, хранящейся в регистре, она не является частью закодированной информации.Кодируются только значения битов.