【问题标题】:How is risc-v neg instruction imeplemented?risc-v neg 指令是如何实现的?
【发布时间】:2020-10-27 02:59:08
【问题描述】:

neg 伪指令是如何只用一个 sub 实现的?

我不明白,因为negR[rd] = -R[rs1]。但是如果我有sub,那就是R[rs1] - something

【问题讨论】:

    标签: riscv32


    【解决方案1】:

    本例中的“某物”是zero 寄存器。但你不是从寄存器中减去那个,你是从 that 中减去寄存器。

    neg rd, rs
    

    伪指令旨在将rs的否定放入rd

    sub rd, zero, rs
    

    指令从zero 中减去rs,将结果放入rd

    rd := -rs        ; example: -(42)  -> -42
    rd := 0 - rs     ;          0 - 42 -> -42
    

    由于-x0 - x 相同,因此它们是等价的。


    如果您想要更全面的伪指令列表及其映射到的内容,这里有一张图片,其中详细说明了一些内容,包括您询问的具体内容:

    【讨论】:

      猜你喜欢
      • 2018-05-16
      • 2023-04-01
      • 2018-11-22
      • 2023-03-22
      • 1970-01-01
      • 2019-11-14
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多