- arithmetic instruction에서는 register를 32bit signed 정수로 해석
- logical instruction 역시 operand가 register이어야 되고 32bit(32개로 적지말 것)로 구성되어 있음
- 단, 독립적인 32bit 값이 모여있을 뿐
- 논리연산 = 1 bit 연산 (0 or 1)
- NOT -> 단항 연산 (operand 1개)
- AND, OR -> 이항 연산
- bitwise(bit-by-bit) logical operators
or / ori
- ori = addi
- A or 0 = A
- 당분간 out of range error는 무시하고 실행
and / andi
- A and 1 = A
nor = not or
- not instruction은 필요 없음 (nor 활용)
sll : shift left logical
- register 2개 (3개짜리 X)
- 세 번째 operand는 반드시 상수
- ori = addi
- $s0 -> 9
- 비어있는 부분은 0으로 채움
- 32bit 안에 적을 자리가 없으면 버림
- 왼쪽으로 i bit shift 하는 것은 2i만큼 곱하는 것과 같은데 연산 속도는 곱셈보다 빠름
srl : shift right logical
- 오른쪽으로 i bits shift 하는 것은 2i로 나누는 것과 같은데 연산 속도는 나눗셈보다 빠름
'Study > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] Rformat (0) | 2024.09.17 |
---|---|
[컴퓨터구조] multi & div (0) | 2024.09.16 |
[컴퓨터구조] subtraction (1) | 2024.09.16 |