Почему мы увеличиваем счетчик программ на 4 вместо 32 в MIPS? - PullRequest
0 голосов
/ 11 октября 2018

В MIPS я знаю, что ПК увеличивается на 4 для каждой инструкции.Это потому, что слово находится на границе 32 бита (4 байта).Это имеет смысл для меня, и, естественно, нам нужно увеличить ПК на разницу в пространственном расположении двух последовательных слов.

Например, у нас может быть 0x00000000 в качестве значения ПК, но затем, когда мы увеличиваем ПКстановится 0x00000004.Но эта разница на самом деле составляет 4 бита, а не 4 байта (32 бита).Почему 0x00000004 вместо 0x80000000?

В двоичном виде этот вопрос становится следующим: 0000 0000 0000 0000 0000 0000 0000 0000 до 0000 0000 0000 0000 0000 0000 0010 против 1000 0000 0000 0000 0000 0000 0000 0000. ВторойКажется, что разница составляет 32 бита (4 байта) по сравнению с первым, который составляет 4 бита.

Единственное, о чем я могу думать, - это умножить ПК на 8, чтобы получить фактическое значение.отправная точка слова.Добавление 4 не должно быть достаточно?Может кто-нибудь объяснить, что мне не хватает?

1 Ответ

0 голосов
/ 11 октября 2018

Поскольку машина адресуется в байтах, а не в битах;следовательно, добавление 4 увеличивает указатель на 32 бита.

Адресная шина требует расположения в байтах.Нет способа адресовать отдельные биты.

Вполне возможно, что он фактически увеличивает ПК на 1, а младшие два бита даже не существуют в регистре.По крайней мере, один процессор работал таким образом.

...