在没有 MTC1 的情况下在 MIPS 中移动浮点数位
Shift bits of a float in MIPS without MTC1
我目前正在做一项学校作业,该作业要求我在不使用 MIPS 附带的 mtc1
命令的情况下找到单精度浮点数的有偏指数。我想知道如何在输入的结果
上使用 sll
或 srl
下面的代码是我想要实现的
li $v0, 6
sll $a2, $f0, 1 // Wrong type error here
srl $a2, $a2, 24
我怎么能做这样的事情?
当然你不能像那样在同一条指令中混合使用 FPR 和 GPR,MFC* 和 MTC* 除外
如果数据当前在内存中,您可以使用 lw
将其直接加载到 GPR。如果它在 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
我目前正在做一项学校作业,该作业要求我在不使用 MIPS 附带的 mtc1
命令的情况下找到单精度浮点数的有偏指数。我想知道如何在输入的结果
sll
或 srl
下面的代码是我想要实现的
li $v0, 6
sll $a2, $f0, 1 // Wrong type error here
srl $a2, $a2, 24
我怎么能做这样的事情?
当然你不能像那样在同一条指令中混合使用 FPR 和 GPR,MFC* 和 MTC* 除外
如果数据当前在内存中,您可以使用 lw
将其直接加载到 GPR。如果它在 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