next up previous
: [付録] 加算・減算および論理演算 (復習) : [問題] 加算・減算のオーバーフロー

論理演算 : AND、OR、シフト

今までの演習では取り扱わなかったが、シミュレータ SPIM には 論理演算 AND 、 OR、シフト等の命令も含まれている。

AND、OR に対応する命令 and 、or はは各ビットごとに AND、OR をとる。 例えば (0101 AND 0011) は 0001 、(0101 OR 0011) は 0111、といった 具合である。

シフト命令 sll (左シフト) は、語中の全てのビットを左シフトし、 空いた部分に 0 を埋める。 シフト命令 srl (右シフト) は、語中の全てのビットを右シフトし、 空いた部分に 0 を埋める。

例えば、00001100 を 左に 2 ビットシフトすると 00110000 であり、 右に 2 ビットシフトすると 00000011 となる。 シフトは乗算の実現に使われるが、今回は取り扱わない。

なお、上では 4 ビットや 8 ビットでの例を挙げたが、 実際の MIPS 命令 and 、 or 、sll 、 srl ではもちろん 32 ビットの 数 (具体的にはレジスタの中身) が対象となっている。



平成16年12月13日