blez
의사lyszt.net은 blez 및 기타 RISC-V 명령어를 더 자세히 다룹니다.
설명
blez는 레지스터의 값이 0이거나 음수일 때 분기합니다. 이 이름은 less than or equal to zero일 때 분기한다는 뜻입니다. 아래 형식은 rs가 0 이하일 때 레이블 위치로 점프하고, 그렇지 않으면 다음 명령어로 폴스루합니다.
blez rs, label
어셈블러는 이를 의사 명령어로 취급하여 아래 명령어로 다시 씁니다. 이 명령어는 zero가 레지스터보다 크거나 같은지 묻습니다.
bge zero, rs, label
RISC-V에는 less-than-or-equal 분기가 없기 때문에 피연산자가 바뀌어 bge가 그 일을 합니다. 이는 ble가 만들어지는 방식과 같습니다. 비교는 부호 있는 비교입니다. 0 분기는 blez를 bltz와 구분해 주며, bgtz의 반대이므로 어떤 값에 대해서도 둘 중 정확히 하나만 분기합니다. 기반이 되는 분기는 bge를 참조하세요.
blez는 더 할 일이 남아 있지 않은지 확인하는 데 적합합니다. 남은 항목 수를 처리하는 루프는 카운트가 0이 되거나 그 아래로 내려가면 바로 빠져나갈 수 있습니다.
blez t0, done
위 줄은 t0가 0이거나 음수일 때 done으로 점프합니다.
확장 대상
bge zero, rs, label
어셈블러는 이 의사 명령을 위에 나열된 실제 명령 또는 명령들로 대체합니다.
예시
li t0, 0 blez t0, done # t0 <= 0, so jump to 'done'
