吕氏MIPS分解 [英] Break down of lui MIPS
本文介绍了吕氏MIPS分解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试弄清楚ori t1,100000
在MIPS中是如何分解的。MIPS说它变成了。
lui $1,1
ori $1,$1,34464
or $9,$9,$1
我不确定它如何获得lui
的值1和ori
的值34464。
推荐答案
如果使用任何计算器将100000转换为十六进制,则会得到
其大小优于16位,并且在MIPS中,立即数不能大于16位。我们不能在一条指令中输入此值。100000=0x186a0
看看上面和下面的不同部分。
0x186a0=0x10000+0x86a0
=(0x1<;<;16)+0x86a0
和
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
这篇关于吕氏MIPS分解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文