ISA와 어셈블리
RISC-V 명령어 'slt t0, a0, a1'의 동작으로 올바른 것은?
- Aa0를 a1비트만큼 왼쪽으로 시프트하여 t0에 넣는다
- Ba0가 a1보다 작으면 t0의 주소로 분기한다
- Ca0가 a1보다 작으면 t0에 1을, 그렇지 않으면 0을 넣는다
정답과 해설 보기
정답: C. a0가 a1보다 작으면 t0에 1을, 그렇지 않으면 0을 넣는다
slt(set less than)는 두 레지스터를 부호 있는 정수로 비교하여 작으면 1, 아니면 0을 씁니다. 부호 없이 비교하는 sltu, 즉치값과 비교하는 slti도 있습니다. C 언어의 'x = (a < b);'처럼 비교 결과를 값으로 사용할 때나, 분기를 없애고 조건을 계산으로 표현할 때 사용됩니다. 시프트는 sll, 분기는 blt 등 다른 명령어입니다.