.text .globl main main: addi $t1, $0, 0x3C00 addi $t2, $0, 0x0DC0 or $t0, $t1, $t2 ori $t3, $t1, 0 and $t4, $t1, $t2 andi $t5, $t1, -1 nor $t6, $t1, $t2 nor $t7, $t1, $t1 ori $s0, $0, 9 sll $t2, $s0, 4 srl $t4, $t2, 2
bitwise 연산은 이렇게 비트끼리 연산한다.
결과를 보면 $t1 레지스터와 값이 같은 것을 볼 수 있다.
왜냐하면, A and 1 = A 이기 때문이다.
위와 같이, 더하고 나서 뒤집어주는 것을 볼 수 있다.
❗ 만약 not 연산을 해주고 싶으면 자기 자신을 operand로 쓰면 된다.
nor $t7, $t1, $t1 = ~$t1
$s0을 4bit 왼쪽으로 이동시킨다.
왼쪽으로 x bit 이동하는 것은 2^x 로 곱하는 것과 같은 결과가 나오지만, 속도가 훨씬 빠르다.
$t2를 2bit 오른쪽으로 이동시킨다.
오른쪽으로 x bit 이동하는 것은 2^x 로 나누는 것과 같은 결과가 나오지만, 속도가 훨씬 빠르다.