Logical Instructions
- 항상 2개의 variant가 있다. 하나는 register용(
and
), 하나는 immediate용(andi
)이다. - 비트마스크용도로 사용된다.
NOT
은 존재하지 않는다! 대신에 모든 숫자에 1을 채운 것과xor
을 하여 해결한다. For simplicity!
Logical Shifting
sll, slli
: 몇 bit만큼 왼쪽으로 옮겨준 뒤에 오른쪽에는 0을 삽입해준다. 즉 곱셈을 해준 것과 같은 효과다.- 예를 들어서 12로 곱하고 싶다면, 8로 곱해준 결과와 4로 곱해준 결과를 더해주는 식으로 한다.
slli x11, x12, 2 # x11 = x 12 << 2
srl, srli
는 오른쪽으로 옮겨준 뒤에 왼쪽에는 0을 삽입해 준다.(>>)
Arithmetic Shifting
sra, srai
: 몇 bit만큼 오른쪽으로 옮겨준 뒤에 왼쪽에는 0이 아닌 high-order sign bit을 채워준다. 2의 제곱수로 나누어준 것처럼 보일 수 있지만 그렇지 않다.- 반례: odd negative numbers! C에서는 0을 향한 방향으로 버림하게 되어 있는데, 이렇게 나누어줄 경우 그렇게 되지 않는다.
'컴퓨터 > 컴퓨터구조' 카테고리의 다른 글
[UCB CS61C] Lec11, 12 RISC-V Instruction Formats (0) | 2024.01.10 |
---|---|
[UCB CS61C] Lec10 RISC-V Memory and Calling Conventions (1) | 2024.01.09 |
[UCB CS61C] Lec08 RISC-V (lw, sw, decision making) (0) | 2024.01.05 |
[UCB CS61C] Lec07 RISC-V Intro (0) | 2024.01.05 |
[UCB CS61C] Lec06 Floating Point (0) | 2024.01.04 |
댓글