首页 > 解决方案 > MIPS 有什么理由不使用 li 而不是 lw 来存储整数、浮点数、双精度数?

问题描述

我看到人们将 lw 和 li 用于相同目的,即在寄存器中存储和操作数字。但在什么情况下,哪一个最合适?谢谢你。

标签: mips

解决方案


我看到人们出于相同目的使用 lw 和 li

他们没有相同的目的。的目的lw是将一个字( 32位)从内存中加载到寄存器中。例如:

.data
foo: .word 12345
.text
la $a0, foo     # $a0 = address of foo
lw $t0, ($a0)   # $t0 = 12345

的目的li是将一个中间加载到一个寄存器中。例如:

li $t0, 12345   # $t0 = 12345

请注意,MIPS 指令集实际上并不包含任何li指令。它是由汇编器实现的伪指令,它将其转换为一条或多条实际指令(例如lui和的组合ori)。


推荐阅读