很简单,W 的意思是“宽”。它是指令的 32 位版本,而大多数 Thumb 指令是 16 位宽。宽指令通常具有更大的立即数或可以寻址更多寄存器。
编辑:一些评论似乎感到困惑之间的差异addw和add.w。唯一的本质区别是立即数的编码方式。
add.w: imm32 = ThumbExpandImm(i:imm3:imm8);
addw: imm32 = ZeroExtend(i:imm3:imm8, 32);
Run Code Online (Sandbox Code Playgroud)
小智 3
我在Cortex-M3 TRM表 2-5中看到 ADDW
Data operations with large immediate
ADDW and SUBW have a 12-bit immediate. This means they can replace many from memory literal loads.
Run Code Online (Sandbox Code Playgroud)
快速参考中也提到了
add wide T2 ADD Rd, Rn, #<imm12>
Run Code Online (Sandbox Code Playgroud)
看起来汇编器会识别立即常量 <= 12 位,并执行需要的操作。
在您看到它的上下文中,它是一个普通的“添加”。
| 归档时间: |
|
| 查看次数: |
6309 次 |
| 最近记录: |