ARM的标志位解释
来源:互联网 发布:46倍奔驰宝马数学算法 编辑:程序博客网 时间:2024/05/08 09:39
在学习ARM指令这一章节时,我对下面这张条件吗表一开始不理解:
之前以为CMP指令执行后,不管是进位还是借位,C标志位都会置位,其实这是错的,所以我整理了一下四个ARM标志位的置位和清零的规则:
N 当用两个补码表示的带符号数进行运算时,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零.
Z Z=1表示运算的结果为零,Z=0表示运算的结果非零。
C 可以有4种方法设置C的值:
加法运算(包括CMN):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0。
减法运算(包括CMP):当运算时产生了借位时(无符号数溢出),C=0,否则C=1。
对于包含移位操作的非加/减运算指令,C为移出值的最后一位。
对于其它的非加/减运算指令,C的值通常不会改变。
V 可以有2种方法设置V的值:
对于加减法运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号位溢出
对于其它的非加/减运算指令,V的值通常不会改变。
0000 = EQ - Z set (equal,相等)
0001 = NE - Z clear (not equal,不相等)
0010 = CS - C set (unsigned higher or same,无符号大于或等于)
0011 = CC - C clear (unsigned lower,无符号小于)
0100 = MI - N set (negative,负数)
0101 = PL - N clear (positive or zero,正数或零)
0110 = VS - V set (overflow,溢出)
0111 = VC - V clear (no overflow,未溢出)
1000 = HI - C set and Z clear (unsigned higher,无符号大于)
1001 = LS - C clear or Z set (unsigned lower or same,无符号小于或等于)
1010 = GE - N set and V set, or N clear and V clear (greater or equal,带符号大于或等于)
1011 = LT - N set and V clear, or N clear and V set (less than,带符号小于)
1100 = GT - Z clear, and either N set and V set, or N clear and V clear (greater than,带符号大于)
1101 = LE - Z set, or N set and V clear, or N clear and V set (less than or equal,带符号小于或等于)
1110 = AL - always
1111 = NV - never
- ARM的标志位解释
- ARM的 N、Z、C、V 标志位的解释
- ARM的 N、Z、C、V 标志位的解释
- ARM的 N、Z、C、V 标志位的解释
- ARM指令中标志位的定义
- ARM条件码与CPSR标志位的关系
- ARM条件码与CPSR标志位的关系
- ARM条件码与CPSR标志位的关系
- 标志FLAG_ACTIVITY_NEW_TASK的解释
- 标志FLAG_ACTIVITY_NEW_TASK的解释
- ARM指令-条件执行及标志位
- 怎样记住标志寄存器的标志位
- 标志寄存器的详细解释
- i2c_msg一些标志的解释
- i2c_msg一些标志的解释
- 标志寄存器的详细解释
- i2c_msg一些标志的解释
- i2c_msg一些标志的解释
- opencv 颜色直方图(灰度图,均衡化,对比,描绘颜色直方图)
- 用Jmeter进行接口自动化测试工作流程
- 加密工具
- 做个健全的大人
- Python一日一练12----堆排序
- ARM的标志位解释
- CSS强制英文、中文换行与不换行 强制英文换行
- [算法]二维数组循环输出
- powerdesigner设计数据库原型并生成SQL文本n
- 使用缓存降低数据库查询频率
- jquery 选项卡demo
- http://wenku.baidu.com/view/1ee32e3a87c24028915fc362.html?re=view###
- 分布式服务框架 Zookeeper
- <疯狂 android讲义>第二章 笔记