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
    
对于V的解释

正数相加变成负数
1)(+72)+(+98)=?
     0 1 0 0 1 0 0 0 B    +72
  +  0 1 1 0 0 0 1 0 B    +98
     1 0 1 0 1 0 1 0 B    -42
负数相加变成正数
2)(-83)+(-80)=?
     1 0 1 0 1 1 0 1 B    -83
  +  1 0 1 1 0 0 0 0 B    -80
     0 1 0 1 1 1 0 1 B    +93
    这两个题目,按照正常的法则来运算,但结果显然不正确,这是怎么回事呢?    答案:这是因为发生了溢出。
如果计算机的字长为n位,n位二进制数的最高位为符号位,其余n-1位为数值位,采用补码表示法时,可表示的数X的范围是   -2n-1≤X≤2n-1-1
当n=8时,可表示的有符号数的范围为-128~+127。两个有符号数进行加法运算时,如果运算结果超出可表示的有符号数的范围时,就会发生溢出,使计算结果出错。很显然,溢出只能出现在两个同符号数相加或两个异符号数相减的情况下。
对于加法运算:
1)、如果次高位(数值部分最高位)形成进位加入最高位,而最高位(符号位)相加(包括次高位的进位)却没有进位输出时;
2)、或者反过来,次高位没有进位加入最高位,但最高位却有进位输出时。
都将发生溢出。因为这两种情况是:两个正数相加,结果超出了范围,形式上变成了负数;两负数相加,结果超出了范围,形式上变成了正数。
对于减法运算:
1)、当次高位不需从最高位借位,但最高位却需借位(正数减负数,差超出范围);
2)、或者反过来,次高位需从最高位借位,但最高位不需借位(负数减正数,差超出范围)。就会出现溢出

ARM的 N、Z、C、V 标志位的解释相关推荐

  1. ARM的 N、Z、C、V 标志位

    V: 一个正数加上一个正数,结果为负数: 一个负数加上一个负数,结果为正数: 一个正数减去一个负数,结果为负数: 一个负数减去一个正数,结果为正数:

  2. ARM中CPSR的标志位中的C和V

    进位标志和溢出标志 这次大概总结一下进位标志(Carry Flag, CF)和溢出标志(Overflow Flag, OF)的含义和理解方式 首先明确一点基本认识,处理器本身并不在意也不知道参与算术运 ...

  3. ARM关于标志位影响详解

    比较指令 CMP, CMN,TEQ, TST这几条指令,总是会更新条件标志位,但运算结果总是被扔掉,不会进行保存. 他们的语法格式如下 CMP{cond} Rn, Operand2:Rn - Oper ...

  4. 基于I2C协议读取AD值(arm单片机,转换标志位RDY-可中断使用)

    背景:根据I2C协议可以使单片机读取采样芯片SGM58031的AD值. 涉及问题:I2C,转换标志位,采样速率. 问题1:单片机如何访问AD转换芯片? 答1:芯片SGM58031是通过I2C协议来访问 ...

  5. Ollydbg中C标志位P标志位A标志位Z标志位以及S,T,D,0标志位含义详解

    转载自https://www.cnblogs.com/whzym111/p/6374855.html 知识点: l 标志位 置位相关指令   l 标志寄存器PSW 标志寄存器PSW(程序状态字寄存器P ...

  6. 三、Android系统内核编译及刷机实战 (修改反调试标志位)

    前言 在 二.Android系统源码编译及刷机实战 一文中,我们成功编译了Android 4.4.4_r1源码并刷入系统了 Nexus 5 设备,下面是设置界面的信息.上面显示的内核版本信息是3.4. ...

  7. 嵌入式cmp指令的判断标志位_ARM汇编指令集

    ARM处理器的指令集可以分为跳转指令.数据处理指令.程序状态寄存器(PSR)处理指令.加载/存储指令.协处理器指令和异常产生指令6大指令. 一.跳转指令 跳转指令用于实现程序流程的跳转,在ARM程序中 ...

  8. Python正则表达式 re.sub()函数:标志位flags与参数个数问题

    这两天在写爬虫程序,涉及英文文本处理,需要规范化英文标点符号的写法.正常情况下,英文句号.后面需要保证有且只有一个空格,但也有例外情况,比如i.e..e.g..P.S.这种.由于无法预测大小写,因此在 ...

  9. 嵌入式cmp指令的判断标志位_嵌入式开发的基础知识

    搜索了一些有关于对嵌入式开发的一些基础知识,分享给大家! 1.ARM中一些常见英文缩写解释 MSB:最高有效位: LSB:最低有效位: AHB:先进的高性能总线: VPB:连接片内外设功能的VLSI外 ...

最新文章

  1. linux系统宿主定制之初窥门径
  2. php音译汉字,PHP中的西里尔语音译
  3. L1-009 N个数求和(分数运算模板)(34行代码AC)
  4. 7 centos 设置jvmgc_centos下docker离线部署
  5. python搭建https代理服务器_使用NGINX作为HTTPS正向代理服务器
  6. 【5】Java内存访问重排序vs volatile
  7. $ is not defined与SpringMVC访问静态资源
  8. MySQL的LIKE模糊查询优化
  9. 图解十大机器学习算法
  10. 渗透测试专业人员使用的11种工具
  11. JavaEye论坛热点推荐-2009年1月
  12. python爬虫扇贝单词库
  13. 80211速率控制的研究
  14. centos搭建流媒体服务器
  15. 来吧 请收藏,测试工程师工作中需要的各种免费工具
  16. VB图片分割器九宫格
  17. 苹果新款笔记本_微软为Bing桌面体验也带来了语音搜索功能_苹果 新款MacBook Pro 13英寸_笔记本新闻...
  18. 1945:【09NOIP普及组】多项式输出
  19. 为什么电磁炉加热一会就停了 电磁炉加热原理与维修技巧一点通_电磁炉电路图讲解
  20. 车内看车头正不正技巧_科目二考试最实用技巧!

热门文章

  1. oracle中授予插入的权限,向 Oracle 中的 Reviewer 工作空间组件授予权限
  2. 查看github星数排行榜
  3. 车载视频转换方式(格式工厂)
  4. 【Lyra UI】UI 玩法逻辑小结
  5. 给你的工艺品署个名吧
  6. 10【matplotlib常用统计图】02绘制条形图
  7. 听TED唐.泰普史考特讲区块链(从零开始学区块链 199)
  8. java遍历几种,【Java】集合遍历的概念及遍历的几种方式
  9. 网页html5播放器,一个强大的开源HTML5视频播放器,字节出品
  10. U盘超级加密3000