[RISC-V] Instruction (명령어)

2024. 11. 16. 04:00

RISC-V의 Instruction은 역할에 따라 크게 세 종류로 나눌 수 있다.

  • Arithmetic/Logical Instructions
  • Data Transfer Instructions
  • Control Transfer Instructions

1. Arithmetic/Logical Instructions

Arithmetic

Arithmetic Operations

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이다.

Logical Operations

srl(shift right logical): unsigned integer를 대상으로 하며, MSB를 항상 0으로 채움
sra(shift right arithmetic): signed integer을 대상으로 하여, MSB를 유지 (부호 유지)

2. Data Transfer Instructions

이 Instruction만 Memory operand를 사용할 수 있다.

Data Transfer Operations

※ 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

Control Transfer Operations

 

'Computer Architecture > ISA' 카테고리의 다른 글

[RISC-V] Operand (피연산자)  (0) 2024.11.15
ISA 이해하기: RISC-V를 중심으로  (0) 2024.11.14