🏷️RISC-V Addressing mode
- 여러 형태의 주소 표현 방식을 addressing mode(주소 지정 방식)라고 한다.
- RISC-V에는 크게 4가지의 addressing mode가 있다.
- 여러 addressing mode가 존재하는 이유는 instruction 사이즈의 한계로 모든 주소를 지정 할 수 없기 때문이다.
- 피연산자는 명령어 내에 있는 상수 그자체다.
- 즉, 주소가 아닌 immediate값 자체가 피연산자가 된다.
- 값을 즉시 사용할 수 있기에 immediate라고 부른다.
- 🔍ex)
addi x5, x5, 1021
: immediate값 1021
📌2. reigster addressing(레지스터 주소 지정)
- 피연산자는 레지스터다.
- 🔍ex)
add x5, x7, x11
📌3. base or displacement addressing(베이스 또는 변위 주소 지정)
- 메모리 내용이 피연산자가 되는데, 메모리 주소는 base register와 immeidate값을 더해서 구하게 된다.
- 🔍ex)
ld x5, 8(x19)
: base register인 x19와 immediate값인 8
📌4. PC-relative addressing(PC 상대 주소 지정)
- 현재 명령어의 위치를 가리키는 PC값(절대 주소)과 immediate값(상대 주소)을 더해서 분기 주소(절대 주소)를 구한다.