Assembly Spim指令部

Assembly Spim指令部,assembly,mips,spim,pcspim,Assembly,Mips,Spim,Pcspim,以上是我的spim程序,我很好奇li指令会被分成lui和ori,有人能解释一下那里发生了什么吗 谢谢你的帮助 li是一条伪指令(即,它在处理器上不作为操作码存在)。 它总是扩展为“加载上限立即数”;以及“或立即”指示: 有效:(4096li是立即加载。但是,您尝试加载的值太大,无法放入该指令的立即数据部分。因此,汇编程序将其拆分为两条指令,每一条指令将该值的一半加载到寄存器的上下部分。Hi感谢您的回复,请您解释一下详细说明一下什么(4096从你的帖子:lui$14096将4096加载到寄存器1的

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


谢谢你的帮助

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


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

Hi感谢您的回复,请您解释一下详细说明一下什么(4096从你的帖子:
lui$14096
将4096加载到寄存器1的上半部分。
ori$8,$1244
是寄存器8=register#1 | 244。(作为$1的下半部分,都是0:$8=$1+244)
[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)