Bet*_*tty 7 assembly riscv immediate-operand
最近,我正在研究RV32I基本指令集,我没有发现任何类似于LD r1,imm的指令。因此,我想知道汇编程序员如何将立即数加载到 RV32I 系统中的寄存器中?谢谢。
为此,程序员可以使用 ADDI r1、r0、imm。由于r0是常数0,所以该指令将imm移至寄存器r1。
不知道RV32的设计者是不是这样想的,用ADDI来代替LD r1,imm?
希望任何人都可以对此有所了解。谢谢。
还有一个li
(立即加载)别名或伪指令也提供您所引用的功能。
以下示例显示了用于加载立即值的 li 伪指令:
Run Code Online (Sandbox Code Playgroud).equ CONSTANT, 0xdeadbeef li a0, CONSTANT
对于 RV32I,生成以下汇编器输出,如 objdump 所示:
Run Code Online (Sandbox Code Playgroud)00000000 <.text>: 0: deadc537 lui a0,0xdeadc 4: eef50513 addi a0,a0,-273 # deadbeef <CONSTANT+0x0>
该片段来自 github markdown,在 riscv 汇编中编程时这是一个很好的参考。 https://github.com/riscv/riscv-asm-manual/blob/master/riscv-asm.md#load-immediate
归档时间: |
|
查看次数: |
17449 次 |
最近记录: |