ARM 条件码标识

一、概述

        APSR(应用程序状态寄存器) 存放算术逻辑单元 (ALU) 状态标记的副本。 这些标记用于确定是否执行条件指令。

       在CPSR(当前程序状态寄存器)存放以下内容:

  • APSR 标记
  • 当前处理器模式
  • 中断禁用标记
  • 当前处理器状态 (ARM、 Thumb、 ThumbEE 或 Jazelle)
  • IT 块的执行状态位

    其中的APSR标记在所有模式下都可以访问。

    有些指令会更新所有标记,而有些指令仅更新部分标记。  如果某一标记未得到更新,则会保留其原始值。 每个指令的描述详细介绍了它对这些标记所产生的影响。

二、状态标记位

  • N   当运算结果为负值时设置此标记。
  • Z   当运算结果为零时设置此标记。
  • C   当运算导致进位时设置此标记。
  • V   当运算导致溢出时设置此标记。

    出现以下情况时会发生进位:
    • 如果加法的结果大于或等于 232
    • 如果减法的结果为正值或零
    • 是移动或逻辑指令中的内联滚筒式移位器运算的结果
    如果加法、减法或比较的结果大于或等于 231 或小于 –231,则会发生溢出。

三、各条件码与状态标记的对应关系

条件码
code条件码状态描述
0000EQZ=1相等
0001NEZ=0不相等
0010CS,HSC=1无符号数大于或等于
0011CC,LOC=0无符号数小于
0100MIN=1负数
0101PLN=0正数或0
0110VSV=1溢出
0111VCV=0未溢出
1000HIC=1,Z=0无符号数大于
1001LSC=0,Z=1无符号数小于或等于
1010GEN=V带符号数大于或等于
1011LTN != V带符号数小于
1100GTZ=0, N=V带符号数大于
1101LEZ=1,N != V带符号数小于或等于
1110AL无条件执行
1111NV无条件不执行

 HS - Higher or Same

LO - Lower

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值