기계어 명령어는 아닌데 assembly 명령어만 있는 명령어
보통 ori $10, $0, 1 를 사용해서 $10번 레지스터에 1을 저장하는데, 이 의도를 파악하고 따로 만든 instruction이 li instruction이다.
assembler가 로드할 때는 ori로 로드된다.
li $10, 1에 해당하는 의미를 수행하도록 바꿔준 것이다.
.text .globl main main: addi $t1, $0, 0x7fffffff lui $t2, 0x7fff ori $t2, $t2, 0xffff
원래 addi는 유사 명령어가 아니다.
❗ 하지만 addi의 operand를 16bit보다 큰 값으로 바꿔주면, 이것이 유사 명령어처럼 작동한다.
out-or-range error가 발생한 후, lui와 ori instruction을 사용하여 $t1의 값이 0x7fffffff가 되도록 assemble 해준다.