Вопросы о кодах MIPS - PullRequest
       0

Вопросы о кодах MIPS

1 голос
/ 04 марта 2011

Как записать следующее в инструкции MIPS?

  • $t0=$t1
  • if ($t6<$t7) go to Label.

Ответы [ 3 ]

1 голос
/ 14 марта 2011

$ t0 не зарезервировано для нуля. $ t0 - это временный регистр, который может хранить любое значение. Регистр $ ноль зарезервирован / встроен в ноль. Мы бы хотели «разветвляться» на «Метку», если $ t6 «меньше», чем $ t7, поэтому используйте ветвь меньше, чем инструкция blt. Код будет выглядеть так:

добавить $ t0, $ ноль, $ t1
blt $ t6, $ t7, ярлык

0 голосов
/ 22 апреля 2012

ваш следующий мусор:

$ t0 = $ t1

если ($ t6 меньше $ t7) перейти к метке

будетпреобразуется в MIPS, например:

переместить $ t0, $ t1 # или использовать вместо него инструкцию (добавить $ t0, $ zero, $ t1) | (addi $ t0, $ t1,0)

slt $ t2, $ t6, $ t7 # если $ t6less чем $ t7, установить $ t2 = 1

bgtz $ t2, foo # if $ t2 = 0 goto foo, а foo - метка, котораяВы хотите перейти на

0 голосов
/ 04 марта 2011

Предполагая, что регистры уже загружены правильными данными.

Таким образом, для $t2 = $t3 добавление $t3 для регистрации нуля и сохранение его в $t2 будет работать так, как это будет выглядеть:

add $t2,$t3,$t0 - при условии, что $ t0 зарезервировано для нуля, как и большинство версий mips.

для if $t4, нам нужен оператор ветвления, не уверен, с чем вы хотите его сравнить, но посмотрите это руководство - должно дать достаточно инструкций о том, как его написать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...