Вопросы инструкции MIPS - PullRequest
       18

Вопросы инструкции MIPS

1 голос
/ 26 декабря 2011

Может ли инструкция subu в MIPS дать мне отрицательный результат, или результат всегда будет положительным, так как мы делаем неподписанную версию сабвуфера? Кроме того, если я хочу сделать арифметическое смещение вправо и поставить 1 в 0-ую позицию числа, я должен использовать инструкцию sra или есть другая инструкция для нее?

1 Ответ

3 голосов
/ 27 декабря 2011

Как и все машинные инструкции, subu даст вам двоичный результат - 32 бита, которые хранятся в регистре назначения.Эти биты просто биты, они не являются ни положительными, ни отрицательными сами по себе, это зависит от того, как вы их интерпретируете.Если вы интерпретируете их как целое число со знаком, оно может быть положительным или отрицательным.Вместо этого вы можете рассматривать биты как число с плавающим указателем - откуда биты не имеют значения - хотя это может быть бессмысленным.

Обратите внимание, что ЕДИНСТВЕННАЯ разница между sub и subuчто sub будет ловушкой при переполнении, обрабатывая операнды как целые числа со знаком.subu даст точно такой же результат, но не перехватит.

sra сдвигает биты вниз (вправо), оставляя самый верхний бит (который является знаковым битом, если обработать биты взарегистрировать как целое число со знаком) и скопировать его в любые верхние позиции, которые свободны

...