【问题标题】:How is risc-v neg instruction imeplemented?risc-v neg 指令是如何实现的? 【发布时间】:2020-10-27 02:59:08 【问题描述】: neg 伪指令是如何只用一个 sub 实现的? 我不明白,因为neg 是R[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 由于-x 与0 - x 相同,因此它们是等价的。 如果您想要更全面的伪指令列表及其映射到的内容,这里有一张图片,其中详细说明了一些内容,包括您询问的具体内容: 【讨论】: