li
- это псевдоинструкция, поддерживаемая ассемблерами MIPS-32, а не "настоящая" инструкция. Таким образом, ассемблер фактически генерирует две инструкции для li
"инструкции" - инструкцию lui
для установки старших 16 битов назначения, а затем инструкцию ori
для установки младших 16 биты.
Тот факт, что это псевдоинструкция, важен, если вы попытаетесь поместить ее в слот задержки ветвления - она не будет работать должным образом; вы получите половину lui
, только если ветвь занята. Большинство ассемблеров предупредит вас об этом.