arm 条件标志、条件码、条件执行

阅读数:1 评论数: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