비트들을 워드로 묶는(packing) 작업과 워드를 비트 단위로 나누는 (unpacking) 작업을 간단하게 하는 명령어들이 프로그래밍 언어와 명령어 집합에 추가되었다. 이러한 명령어들을 논리 연산 명령어라 부른다.
Shift Operation
Shift 연산 워드 내의 모든 비트를 왼쪽 또는 오른쪽으로 이동시키고, 이동 후 빈자리는 0으로 채운다.
- sll (shift left logical)
- 비트들을 왼쪽으로 이동시키고 원래 있던 자리는 0으로 채운다.
- 2를 곱한 것과 같은 결과다.
- srl (shift right logical)
- 비트들을 오른쪽으로 이동시키고 원래 있던 자리는 0으로 채운다.
- 2를 나눈 것과 같은 결과다.
AND Operation
AND 연산은 bit : bit 연산자로서 두 비트 값이 모두 1일 경우에만 결과가 1이 된다.
어떤 비트 패턴에서 0의 위치에 해당하는 비트들을 강제로 0으로 만드는 데 사용할 수 있다.
AND와 함께 쓰이는 이러한 비트 패턴은 일부 비트를 감추는 역할을 하기 때문에 mask라고 부른다.
OR Opreation
OR 연산은 bit : bit 연산자로 두 비트 중 하나만 1이면 결과가 1이 된다.
NOT Operation
NOT 연산은 피연산자 하나를 받아서 피연산자의 비트가 1이면 결과 비트를 0으로, 0이면 1로 만든다.
NOT 연산을 하기위에서 MIPS에서 NOR(NOT OR)을 써야 한다. 피연산자 하나가 0이면 NOT과 같아진다.