1-4-逻辑运算指令

逻辑左移

MIPS

// $t2  = $s0 << 4
sll $t2, $s0, 4

指令:

000000 00000 10000 01010 00100 000000

逻辑右移

MIPS

// $t2  = $s0 >> 4
srl $t2, $s0, 4

指令:

000000 00000 10000 01010 00100 000010

按位与

MIPS

// $t0 = $t1 & $t2
and $t0, $t1, $t2

指令:

000000 01001 01010 01000 00000 100100

按位或

MIPS

// $t0 = $t1 | $t2
or $t0, $t1, $t2

指令:

000000 01001 01010 01000 00000 100101

按位取反

为了保持三个操作数的格式,MIPS采用或非指令。当其中一个操作数为0($zero寄存器)时,即可实现取反的操作:

| A | 0 | A或0 | A或非0 | | :--: | :--: | :--: | :--: | | 1 | 0 | 1 | 0 | | 0 | 0 | 0 | 1 |

MIPS

// $t0 = ~ ($t1 | $t2)
nor $t0, $t1, $t2

指令:

000000 01001 01010 01000 00000 100111