2009-04-15 29 views

回答

4

你会做一个按位,并与0x08和0x40(假设位0是最低位)。您可以使用andi指令来执行此操作。

如果$ to是要测试的值:

andi $t1, $t0, 0x08 
andi $t2, $t0, 0x40 

$ T1将是非零值,如果第3位设置,$ T2将是非零值,如果第6位设置。

4

是的,按位运算符是你使用的。您可以使用仅设置位3和位6的位掩码。然后做一个比较为零。

像(我还没有在很长一段时间做汇编程序):

用于测试在MIPS组件中的单个位
and  r2, r1, 0x48 # r2 = r1 & 0x48 
cmp  r2, 0x48 
jz  zzzzzz #jmp to zzzzz if bits 6 and 3 are set 
+0

我不做mips,但如果设置了位3 *或* 6,那么不会跳转吗? – dmckee 2009-04-15 02:18:47

2

的一种技术是所希望的比特移位到最显著比特位置与使用bltz/bgez来测试位的状态。这可以在不能使用andi指令选择所需位的情况下保存指令。