Сдвиг бит поплавка в MIPS без MTC1 - PullRequest
0 голосов
/ 16 марта 2019

В настоящее время я работаю над школьным заданием, которое требует от меня найти смещенную экспоненту с плавающей запятой одинарной точности без использования команды mtc1, которая поставляется с MIPS. Мне интересно, как можно было бы использовать sll или srl для введенного результата

Следующий код - это то, чего я пытаюсь достичь

li    $v0, 6
sll   $a2, $f0, 1 // Wrong type error here
srl   $a2, $a2, 24

Как бы я мог сделать что-то подобное?

1 Ответ

0 голосов
/ 16 марта 2019

Конечно, вы не можете смешивать FPR и GPR в одной и той же инструкции, кроме как в MFC * и MTC *

Если данные в данный момент находятся в памяти, вы можете загрузить их непосредственно в георадар с помощью lw. Если это на FPR, то вам нужно сохранить в память и загрузить из памяти в GPR

swc1  $f0, 0($a3)  # store from FPR to memory
lw    $t1, 0($a3)  # load from memory to GPR
sll   $a2, $t1, 1  # shift like normal
srl   $a2, $a2, 24
...