这个 RSB 指令有什么作用?

Bre*_*men 4 assembly arm

我想弄清楚这条 ARM 装配线的作用是什么:

RSB r1, r2, r3, LSL #1
Run Code Online (Sandbox Code Playgroud)

我指的是 keil 页面上的 RSB 描述,但这个例子不太适合:http : //www.keil.com/support/man/docs/armasm/armasm_dom1361289891932.htm 我很感激所有的帮助。

Lau*_* H. 8

RSB 指令是一个没有进位的反向减法。
文档说明了语法:

RSB{S}{cond} {Rd}, Rn, Operand2
Run Code Online (Sandbox Code Playgroud)

然后可以解释以下用法:

RSB r1, r2, r3, LSL #1  
Run Code Online (Sandbox Code Playgroud)
  1. r3, LSL #1是 Operand2 吗?r3 寄存器逻辑左移 1 位
  2. r2 是 Rn
  3. r1 是 Rd

所以操作使用r1、r2和r3寄存器如下: r1 = (r3 << 1) - r2