arm汇编条件码
来源:互联网 发布:linux 文件排序 编辑:程序博客网 时间:2024/06/04 23:28
在ARM模式下,任何一条数据处理指令可以选择是否根据操作的结果来更新CPSR寄存器中的ALU状态标志位。在数据处理指令中使用S后缀来实现该功能。
不要在CMP,CMN,TST或者TEQ指令中使用S后缀。这些比较指令总是会更新标志位。
在Thumb模式下,所有数据处理指令都更新CPSR中的标志位。有一个例外就是:当一个或更多个高寄存器被用在MOV和ADD指令时,此时MOV和ADD不能更新状态标志.
几乎所有的ARM指令都可以根据CPSR中的ALU状态标志位来条件执行。参见表2-1条件执行后缀表。
在ARM模式下,你可以:
· 根据数据操作的结果更新CPSR中的ALU状态标志;
· 执行其他几种操作,但不更新状态标志;
· 根据当前状态标志,决定是否执行接下来的指令。
在Thumb模式,大多数操作总是更新状态标志位,并且只能使用条件转移指令(B)来实现条件执行。该指令(B)的后缀和在ARM模式下是一样的。其他指令不能使用条件执行。
2.5.1 ALU状态标志
CPSR寄存器包含下面的ALU状态标志:
上图描述的是汇编指令如何影响CPSR中的相关ALU状态寄存器,非常重要!!!
2.5.2 执行条件
N,Z,C,V相关的条件码后缀如下表所列:
举例说明:
示例1:
ADD r0, r1, r2 ; r0 = r1 + r2, 不更新标志位
ADDS r0, r1, r2 ; r0 = r1 + r2, 后缀S表示更新标志位
ADDCSS r0, r1, r2 ;If C 标志为1,则执行r0 = r1 + r2, 且更新标志
CMP r0, r1 ; CMP指令肯定会更新标志.
示例2:(请自行分析)
gcd CMP r0, r1
BEQ end
BLT less
SUB r0, r0, r1
B gcd
less
SUB r1, r1, r0
B gcd
end
- arm汇编条件码
- [转]ARM汇编条件码
- ARM 汇编指令条件执行详解
- ARM 汇编指令条件执行详解
- ARM 汇编指令条件执行详解
- ARM 汇编指令条件执行详解
- ARM 汇编指令条件执行详解
- ARM 汇编指令学习:[0]编码格式与条件码域
- ARM指令条件码
- ARM指令条件码
- ARM指令条件码
- ARM 指令条件码
- ARM指令条件码
- ARM 指令条件码
- ARM 条件码标识
- ARM指令条件码
- ARM 汇编指令条件执行详解——转载
- ARM汇编指令的条件执行及其他相关细节
- Android开发中Intent类的putExtra和setData 区别
- 关于TreeSet的排序问题 .
- java的学习记录7
- 陇南武都做人工流产的时间
- Oracle sql"NOT IN"语句优化,查询A表有、B表没有的数据
- arm汇编条件码
- oracle cmd 数据导入导出
- 判断两条单链表是否相交
- scala基础之控制结构
- 陇南武都做人流什么时间合适
- mac下的抓包工具Charles
- 陇南武都做人流多少时间
- VC++适合做什么
- 通过js选中单选按钮