Непосредственной частью инструкции является
1111 1111 1110 1111
, что равно -17.Это связано с кодировкой дополнения до двух, и можно легко проверить, что, добавив 17 к этому числу, мы получим 2 ^ 16 (то есть ноль, если оставить только первые 16 бит).
Инструкция MIPS - 32 бита(4 байта), и они выровнены, т.е. их адрес всегда кратен 4. Архитектура MIPS использует эту характеристику для увеличения диапазона ветвлений, и, поскольку ПК всегда кратен 4, смещение ветвлений будет умножено на 4, прежде чем будет добавлено кПК.Это позволяет хранить в 4 раза большие смещения.
Итак, на ПК будет добавлено значение 0 4 * (- 17), то есть -68.
Точнее, Официальная документация MIPS гласит, что
18-битное смещение со знаком (16-битное поле смещения смещено влево на 2 бита) добавляется к адресу инструкции, следующей за ветвью (а не ветвью)само по себе), в слоте задержки перехода, чтобы сформировать эффективный целевой адрес относительно ПК.
Эквивалентная формулировка состоит в том, что это значение -68 будет добавлено к ПК после того, как оно будет увеличено на4 в инструкции извлечения этап.