assembly Mars mips装配,addi代替Ori

mzaanser  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(192)

有一个问题我不能完全理解,因为各种答案我都看到了,这是说明集:

lui $1,0xffffff00
ori $12,$1,0x0000ffff
sra $10,$12,0x00000010
and $8,$12,$10

问题是,如果将Ori指令改为addi,$8的值是多少?

iih3973s

iih3973s1#

问题是有许多MIPS汇编程序,而且这些汇编程序各不相同,因此您必须知道您正在使用哪一个汇编程序,以了解您实际得到的是什么机器代码(或者它是否会接受该输入)。
然后,从机器代码,我们可以严格遵循MIPS规范,并确切地知道代码序列将做什么。
然而,addiori在MIPS上的主要区别--除了“加”与“或”部分之外--在于,尽管它们都是具有16位立即数的I型指令,但是addi将使用***符号扩展***将16位立即数变为32位以用于加法,而X1 M3 N1 X将应用***零扩展***以将16位立即数变为32位用于逻辑OR运算。
否则,由于$1中的低位无论如何都是零,因此实际的add与or没有区别:如果没有进位,add与or是相同的,加到0时没有进位。

相关问题