assembly RISC-V neg指令是如何实现的?

ep6jt1vc  于 2023-11-19  发布在  其他
关注(0)|答案(1)|浏览(123)

neg伪指令是如何只用一个子指令实现的?
我不明白,因为negR[rd] = -R[rs1]。但如果我有sub,它是R[rs1] - something

yrwegjxp

yrwegjxp1#

这里的“某物”是zero寄存器,但你不是从寄存器中减去它,而是从 *that * 中减去寄存器。
The:

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相同,因此它们是等价的。
如果你想要一个更全面的伪指令列表以及它们Map到什么,这里有一个图像,其中详细介绍了一些,包括你问的特定一个:


的数据

相关问题