0

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

我不明白,neg就这样R[rd] = -R[rs1]。但如果我有sub,那就是R[rs1] - something

4

1 回答 1

1

在这种情况下,“某物”是zero寄存器。但是您不是从寄存器中减去它,而是从中减去寄存器

这:

neg rd, rs

伪指令的意思是把否定的rsinto rd。这

sub rd, zero, rs

指令减去rszero将结果放入rd.

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

因为-x与 相同0 - x,所以它们是等价的。


如果您想要更全面的伪指令列表以及它们映射到的内容,这里有一张详细介绍了一些内容的图像,包括您询问的特定指令:

在此处输入图像描述

于 2020-10-27T03:16:04.340 回答