ARM架构芯片中,所有的运算都是再CPU内部进行的,有哪些数据运算的指令呢?
所有的数据都是在**CPU**内部处理的
可以参考《DEN0013D_cortex_a_series_PG.pdf》P70、《ARM Cortex-M3与Cortex-M4权威指南.pdf》第5章获取数据处理指令的相关资料;《DEN0013D_cortex_a_series_PG》是cortex-A7的手册

- 数据处理指令非常多,UAL格式为:

- 并不需要掌握全部的指令,掌握若干条就足够了

- 掌握MOV/ADD/SUB/AND/BIC/ORR/CMP等指令即可
1.加法指令ADD:
ADD R1, R2, R3 ; R1 = R2 + R3
ADD R1, R2, #0x12 ; R1 = R2 + 0x122.减法指令SUB:
SUB R1, R2, R3 ; R1 = R2 - R3SUB R1, R2, #0x12 ; R1 = R2 - 0x123.位操作:
; VisUAL里不支持(1<<4)这样的写法,写成:0x10**AND **R1, R2, #(1<<4) ; 位与,R1 = R2 & (1<<4)AND R1, R2, R3 ; 位与,R1 = R2 & R3**BIC **R1, R2, #(1<<4) ; 清除某位,R1 = R2 & ~(1<<4)BIC R1, R2, R3 ; 清除某位,R1 = R2 & ~R3**ORR **R1, R2, R3 ; 或操作, R1 = R2 | R34.比较:
**CMP** R0, R1 ; 比较R0-R1的结果CMP R0, #0x12 ; 比较R0-0x12的结果**TST **R0, R1 ; 测试R0 & R1的结果TST R0, #(1<<4) ; 测试R0 & (1<<4)的结果比较的结果会影响到程序状态寄存器
- 程序状态寄存器中会被运算影响的bit:

- N/Z/C/V
