Spim指令部门

时间:2011-09-13 00:35:40

标签: assembly mips spim pcspim

[0x00400000]    0x3c011000  lui $1, 4096                    ; 5: li $t0, 0x100000F4
[0x00400004]    0x342800f4  ori $8, $1, 244
[0x00400008]    0x8d100000  lw $16, 0($8)                   ; 6: lw $s0, 0($t0)

上面是我的spim程序,我很好奇li指令被分成lui和ori可以有人解释那里发生了什么吗?

任何帮助表示感谢!!

2 个答案:

答案 0 :(得分:2)

li是伪指令(即,它不作为处理器上的操作码存在)。 它总是扩展为“立即加载”;以及“或立即”指示:

有效地:(4096 << 16) || 244

如果数字不大,将跳过lui指令;和ori将或0寄存器。

答案 1 :(得分:0)

li立即加载。但是,您尝试加载的值太大,无法放入该指令的立即数据部分。汇编程序因此将其拆分为两个指令,每个指令将该值的一半加载到该寄存器的上部和下部。