2011-09-21 191 views
0

以下两种初始化变量的方式有什么区别?以MIPS初始化一个变量

addi $a0, $0, 7 

li $a0, 7 
+0

不考虑指令副作用,addi版本将需要更多内存来存储2个立即值,而li需要更多的内存。 –

+0

寄存器,不是RAM,$ 0是固定的 – brc

+1

@Marc B:废话,两条指令都不涉及RAM,所有的MISP指令都是固定的32位(这里是RISC的东西)。 ADDI是首选,因为它是一条指令,而LI是伪指令并扩展为2条真正的指令。 – m0skit0

回答

1

没有,li通常在硬件中作为addi实现。

+0

如果我尝试使用li进行初始化,它会抱怨变量未初始化?如果变量在li之前被赋予一个值,汇编程序不会发出抱怨,但它会将它解释为向其原始值添加一个数字? –

+0

你在使用什么模拟器/汇编器? – brc

0

ADDI是首选,因为它是一条指令,而LI是伪指令并扩展为2条真实指令。