Диапазон непосредственных в инструкции lui
Я не уверен, какой диапазон ограничен для непосредственного в lui
инструкция.
Когда я собираюсь:
lui $t0,32768
Успешно прошло без ошибок.
Тем не мение,
lui $t0,-32768
уведомил, что -32768 вне диапазона.
1 ответ
В MIPS непосредственные инструкции I-типа всегда имеют длину 16 бит. Это означает, что диапазон будет [0, 65535], если ассемблер обрабатывает его как неподписанный, и [-32768, 32767] для подписанного регистра
Однако то, что вы можете использовать в сборке, зависит от ассемблера
Например, некоторые ассемблеры, такие как shell-storm и WeMips, принимают константы в [-32768, 65535], которая представляет собой сочетание 16-битного со знаком и без знака, MIPS Converter принимает только шестнадцатеричные значения, но WebMIPSASM принимает даже огромные значения, такие как 9223372036854775807, и обрезает результат до 16 бит