Если вы преобразуете 100000 в шестнадцатеричный код с помощью любого калькулятора, вы получите
100000 = 0x186a0
Его размер превосходит 16 бит, и в MIPS непосредственное значение не может бытьбольше 16 бит.Мы не можем ввести это значение в одной инструкции.
Посмотрите на разные верхнюю и нижнюю части.
0x186a0 = 0x10000 + 0x86a0
= (0x1 << 16) + 0x86a0 </p>
и
0x86a0 = 34464
Теперь у нас есть все, что требуется для написания кода.
# store 0x10000==1<<16 in an intermediate register with lui (load upper immediate)
# MIPS asm uses $1 (or $at) as intermediate register
lui $1,1
# content of $1 is 0x00010000
ori $1,$1,34464
# nor we can OR this register with t1 (also called $9)
or $9,$9,$1