본문 바로가기
시스템 반도체/컴퓨터 구조 (RISC-V)

컴퓨터 구조 lb, lbu, sb instruction (RISC-V)

by 전컴반 2022. 2. 27.
반응형
lb (load byte) and lbu ( load byte unsigned )

 

I-type으로 word를 읽어오는 것이 아니라, 바이트(byte)를 읽어오는 명령어이다. 

 

사용은 lb t0, 1(s3)와 같이 한다.어떤 뜻이냐면 s3 + 1 한 주소에 있는 데이터를 t0에 집어넣는다.

 

그런데 문제가 있다. 만약 32bit cpu라면 레지스터는 4byte(32bit)의 크기를 가지고 있다. 하지만 lb는 byte를 불러오는 명령어로, 1byte라 사이즈가 안 맞다. 이때 어떻게 될까?

 

데이터를 LSB에 채우고 나머지를 sign extension 한다. 예로 FF를 불러오면 FFFF_FFFF로 채워진다. 여전히 -1의 값을 가지니 문제가 없다. 

 

이어서 다른 명령어인 lbu ( load byte unsigned )라는 명령어에서 FF는 -1이 아니라 255이다. 그리고 LSB에 위치하고 zero extension 한다 

 

 

sb (store byte)

 

위에서 본 lb와 반대의 동작을 한다. sb는 s-type으로 레지스터에 있는 데이터를 메모리에 저장하는 것이다.

 

sb x5 3(x0)라고 하면 x5에 있는 데이터를 3 + x0 한 결과 주소에 저장한다.

이때 x5에는 4byte가 있지만 byte만 저장하기 때문에 어떤 btye를 저장할 것이냐 하면, 제일 오른쪽에 있는 1byte를 저장한다

 

 

반응형

댓글