반응형
먼저 2가지 명령어를 알아보고 pseudo를 알아보자.
lui (load upper immediate)
간단히 보자, u-type으로 lui t0, 0x12345 하면 t0 레지스터의 왼쪽에 0x12345를 채워 넣고 나머지 bit는 0으로 채워 넣는다. ( 0x12345인 이유는 imm이 20bit이다. )
auipc (add upper immediate to pc)
lui와 똑같은 u-type이다. 간단한 동작이다. auipc t0, 0x12345라고 하면 먼저 lui를 하고 pc 레지스터랑 add 한다.
pc = 0x0102_3040이라 한다면 아래와 같다. 0x1234_5000인 이유는 lui를 했기 때문이다.
pseudo instructions ( 의사 코드 (가짜) 명령어)
번역 그래도 가짜 명령어이다. 무슨 말이냐면, 예를 들어 설명하는 것이 가장 좋을 것 같다.
li s0, 0x1234_5 AAF 하면 s0에 값이 들어간다. 하지만 실제로 동작하는 명령어는 lui와 addi이다.
lui s0, 0x12345
addi s0, 0xAAF
이 두 동작을 실행하여 li 명령어를 동작시킨다. 이렇듯 pseudo 명령어는 사용자의 편리성을 제공해주기 위해 존재한다.
이렇게 가짜 명령어가 많이 존재한다. 결과는 우리가 원하는 결과지만 동작은 다르게 한다.
반응형
'시스템 반도체 > 컴퓨터 구조 (RISC-V)' 카테고리의 다른 글
컴퓨터 구조 slt, sltu, slti, sltiu, Endianness (RISC-V) (0) | 2022.03.02 |
---|---|
컴퓨터 구조 Branch instruction ( beq, jal, jump 범위, RISC-V ) (0) | 2022.03.01 |
컴퓨터 구조 lb, lbu, sb instruction (RISC-V) (0) | 2022.02.27 |
컴퓨터 구조 lw, sw instruction (RISC-V) (0) | 2022.02.27 |
컴퓨터 구조 Data transfer ( instruction acess, Data acess, read, write, PC register ) (0) | 2022.02.26 |
댓글