gpt4 book ai didi

assembly - RISC-V 使用 LUI 和 ADDI 构建 32 位常量

转载 作者:行者123 更新时间:2023-12-03 14:52:01 63 4
gpt4 key购买 nike

LUI (load upper immediate) is used to build 32-bit constants and uses the U-type format. LUI places the U-immediate value in the top 20 bits of the destination register rd, filling in the lowest 12 bits with zeros.



我在手册中找到了这个,但是如果我想将 0xffffffff 移动到寄存器,我需要的所有代码是:
LUI x2, 0xfffff000
ADDI x2, x2, 0xfff

但是出现了一个问题,ADDI 将符号扩展使立即数变为有符号数,所以 0xfff将延长至 0xffffffff .

它使 x20xffffefff但不是 0xffffffff
将 32 位立即移动到寄存器的好方法是什么?

最佳答案

RISC-V 汇编器支持伪指令 li x2, 0xFFFFFFFF .

N是有符号的 2 的补码 32 位整数。
li x2,N的常见案例实现是:

    # sign extend low 12 bits
M=(N << 20) >> 20

# Upper 20 bits
K=((N-M) >> 12) <<12

# Load upper 20 bits
LUI x2,K

# Add lower bits
ADDI x2,x2,M

当然,要加载短线立即 li可以使用
   addi x2,x0,imm

所以, li x2, 0xFFFFFFFFaddi x2,x0,-1 .

关于assembly - RISC-V 使用 LUI 和 ADDI 构建 32 位常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50742420/

63 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com