Assembly lui MIPS的细分

Assembly lui MIPS的细分,assembly,mips,Assembly,Mips,我正在试图弄清楚orit1100000在MIPS中是如何崩溃的。MIPS说它变成了 lui $1,1 ori $1,$1,34464 or $9,$9,$1 我不确定它是如何得到lui的值1和ori的值34464的。如果你用任何计算器把100000转换成十六进制,你会得到 100000=0x186a0 它的大小优于16位,在MIPS中,立即数不能大于16位。我们不能在一条指令中输入此值 看看不同的上部和下部 0x186a0=0x10000+0x86a0 =(0x1在十六进制中查看它,很明显它是

我正在试图弄清楚
orit1100000
在MIPS中是如何崩溃的。MIPS说它变成了

lui $1,1
ori $1,$1,34464
or $9,$9,$1

我不确定它是如何得到lui的值1和ori的值34464的。如果你用任何计算器把100000转换成十六进制,你会得到

100000=0x186a0

它的大小优于16位,在MIPS中,立即数不能大于16位。我们不能在一条指令中输入此值

看看不同的上部和下部

0x186a0=0x10000+0x86a0

=(0x1在十六进制中查看它,很明显它是如何使用2个16位直接数使一个32位常量的。和往常一样,“这个MIPS指令做什么?”-问题;在MIPS32中查找它™ 程序员体系结构第二卷:MIPS32™ 指令集。
# 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