阿迪和苏比之间到底是什么“关系”?

2024-04-13

我应该回答这个问题。经过一番研究后发现,add 和 sub 具有相同的操作码,仅在功能领域有所不同。这是答案还是其他什么?

Update

Nios II CPU 手册中提供了它:

subi
subtract immediate
Operation: rB ← rA – σ (IMMED)
Assembler Syntax: subi rB, rA, IMMED
Example: subi r8, r8, 4
Description: Sign-extends the immediate value IMMED to 32 bits, subtracts it from the value of rA and then
            stores the result in rB.
Usage: The maximum allowed value of IMMED is 32768. The minimum allowed value is
–32767.
Pseudo-instruction:
© March 2009
subi is implemented as addi rB, rA, -IMMED

我什至不知道 MIPShas正确的subi指令(尽管某些环境可能会为其实现宏)。

因为你要减去一个即时值,您只需将其否定提供给addi操作说明:

addi $r1, $r2, -42     ; equivalent to subi $r1, $r2, 42

立即操作数是二进制补码值,这意味着它完全可以是负数,而二进制补码的工作方式意味着您可以在unsigned方式,这给出了与减法相同的结果(因为你回绕了)。

例如,-4216 位二进制补码是无符号值65494。当你添加50 and 65494绕到 65536 处,您最终会得到:

     50
+ 65494 (ie, -42)
  -----
  65544 (overflow, so
- 65536  we wrap at 64K)
  -----
      8 (identical to "50 - 42")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阿迪和苏比之间到底是什么“关系”? 的相关文章

随机推荐