RISC-V의 Instruction은 역할에 따라 크게 세 종류로 나눌 수 있다.
- Arithmetic/Logical Instructions
- Data Transfer Instructions
- Control Transfer Instructions
1. Arithmetic/Logical Instructions
Arithmetic
Example
add a, b, c // a ← b + c
sub a, b, c // a ← b - c
Upper Immediate Operations
lui rd, imm20
Instruction 안에 내재되어있는 12-bit immediate가 부족할 때 사용한다.
상위 20비트를 먼저 load하고 sign-extension 한 후, 하위 12비트를 load하여 합친다.
Logical
bitwise manipulation을 위한 Instructions이다.
srl
(shift right logical): unsigned integer를 대상으로 하며, MSB를 항상 0으로 채움sra
(shift right arithmetic): signed integer을 대상으로 하여, MSB를 유지 (부호 유지)
2. Data Transfer Instructions
이 Instruction만 Memory operand를 사용할 수 있다.
※ Offset value는 signed이다. (unsigned는 uld 사용)
- Load: Memory → Register
- Store: Register → Memory
Example
// 8 bytes per doubleword
// &A[8] = A + 64
ld x9, 64(x22) // x9 ← A[8]
add x9, x21, x9 // x9 ← x21 + x9
sd x9, 96(x22) // A[12] ← x9
3. Control Transfer Instructions
'Computer Architecture > ISA' 카테고리의 다른 글
[RISC-V] Operand (피연산자) (0) | 2024.11.15 |
---|---|
ISA 이해하기: RISC-V를 중심으로 (0) | 2024.11.14 |