Формат инструкции li (немедленная загрузка) в MIPS 32-bit? - PullRequest
0 голосов
/ 13 апреля 2020

Я работаю с 32-битным MIPS и просто интересуюсь максимальными битами непосредственного значения в инструкции li. Я произвел поиск по inte rnet с результатами, которые не согласуются, некоторые из них сказали, что максимальные биты непосредственного поля могут быть 16 , 32 или и . Насколько я понимаю, инструкция li соответствует формату I-инструкции, и поэтому в 32-битном MIPS непосредственное значение должно иметь только 16 битов. Может ли кто-нибудь сказать мне, если это неправильное мышление, и помочь мне прояснить его?

1 Ответ

0 голосов
/ 14 апреля 2020

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

Тот факт, что это псевдоинструкция, важен, если вы попытаетесь поместить ее в слот задержки ветвления - она ​​не будет работать должным образом; вы получите половину lui, только если ветвь занята. Большинство ассемблеров предупредит вас об этом.

...