Диапазон непосредственных в инструкции 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 бит

Другие вопросы по тегам