risc-v neg指令如何实现?

问题描述

仅对一个子执行neg peudo指令如何实现?我不明白neg是R [rd] = -R [rs1]。但是如果我有sub,那就是R [rs1]-某些东西。

解决方法

在这种情况下,“内容”是zero寄存器。但是您不是从寄存器中减去寄存器,而是从那个中减去寄存器。

neg rd,rs伪指令旨在将对rs的求反放入rd中。 sub rd,zero,rs指令从rs中减去zero,并将结果放入rd

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

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


如果您想要更全面的伪指令列表以及它们的映射内容,请在此处查看一张详细介绍伪指令的图像,包括您所询问的特定伪指令:

enter image description here