2011-09-21 193 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條真實指令。