mips - MIPS 有什么理由不使用 li 而不是 lw 来存储整数、浮点数、双精度数?
问题描述
我看到人们将 lw 和 li 用于相同目的,即在寄存器中存储和操作数字。但在什么情况下,哪一个最合适?谢谢你。
解决方案
我看到人们出于相同目的使用 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
)。
推荐阅读
- r - `tidyr`的函数`extract`有问题
- java - 使用没有反射 API 的 Spring Data Redis 访问 Redis 连接池
- security - 认证应用程序是否可以保护其免受将自身注入程序的病毒?
- php - PHP递归函数对所有子项中的特定值求和
- java - Boot_Completed 广播未在应用程序中接收
- javascript - 我网站上的 Discord 登录无效。为什么?
- javascript - 我想根据我在 api 中收到的数据创建一个对象数组
- c# - 使用 mvvm 复制克隆
- java - 注入对 Junit5 扩展注册的依赖
- java - 错误 DefaultHandlerExceptionResolver ,Spring Boot中转发的概念,status=405