Я знаю, как перевести обычный MIPS-код на машинный язык, но как передать псевдо-инструкции в машинный код? Например, команда pseudo branch ble (ветвь на менее ровной). Я не могу найти код операции для справки на листе справки. Как я могу его перевести? Я попытался разрешить две обычные инструкции: ble $ t0, $ t1, L >> sub $ t0, $ t0, $ t1 blez $ t0, L И затем перевести две инструкции в машинный код. Кажется, это правильно? Пожалуйста, помогите ...перевод mips псевдо-инструкция в машинный код
0
A
ответ
1
Я потратил несколько минут на поиски Google, пытаясь найти какой-нибудь документ, в котором перечислены все псевдо-инструкции в сборке MIPS и их переводы, но не смог добиться успеха.
Вместо этого this link, похоже, имеет достаточно информации, чтобы получить эту идею.
Для решения вашего конкретного примера ble $rt, $rs, LABEL
псевдо-инструкций, я считаю, что правильный перевод в соответствующие инструкции является:
slt $at, $rs, $rt
beq $at, $zero, LABEL
Где конечно $at
является регистр зарезервирован для сборщика - за исключением случаев, как это ,
Большое вам спасибо, я понимаю сейчас. Есть много способов перевести правильно? До тех пор, пока функция перевода не отличается от функции перевода? – user3330872
Возможно, существует несколько способов сделать это, но, конечно же, вы ищете максимально возможное. Приятно слышать, что я вам помог, если это сработало для вас, пожалуйста, примите ответ :) –