arm 条件标志、条件码、条件执行
阅读数:104 评论数:0
跳转到新版页面分类
硬件/嵌入式
正文
一、概述
Condition execution是根据运行结果更新Conidtion flags,来判断Condition code是否可以执行。
通过给汇编指令增加Condition Code后缀,处理器可以确定使用哪些condition flags来判断。
二、条件标志
在APSR寄存器的最高四位,有四个条件标志。
条件标志 | 置位/清除 |
---|---|
N | 当运算的结果为负数的话置位,其他情况清0 |
Z | 当运算的结果为0的话置位,其他情况清0 |
C | 当运算的结果产生进位或者减法运算没有借位的话置位,其他情况清0 |
V | 当运算的结果产生溢出的话置位,其他情况清0 |
二、常见条件码
1、CBNZ
// 如果x1!=0,则跳转到label
cbnz x1,label
2、CBZ
CBZ X1,label //如果X1== 0则跳转到label
3、TBNZ
TBNZ X1,#3 label //若X1[3]!=0,则跳转到label
4、TBZ
TBZ X1,#3 label //若X1[3]==0,则跳转到label