CF(进位标识):进位标志位。在无符号运算时,记录了运算结果的最高有效位向更高位的进位值或从更高位借位,产生进位或借位时CF=1,否则CF=0;
PF(奇偶标识):奇偶标志位。相关指令执行后结果所有bit中1的个数为偶数,那么PF=1,1的个数为奇数则PF=0;
ZF(零标识):零标志位。相关指令执行后结果为0那么ZF=1,结果不为0则ZF=0;
SF(符号标识):符号标志位。相关指令执行后结果为负那么SF=1,结果非负数则SF=0;
OF(溢出标识):溢出标志位。记录了有符号运算的结果是否发生了溢出,如果发生溢出OF=1,如果没有OF=0;

接下来做一道题来加深理解。
题目:写出下面每条指令执行后,ZF、PF、SF、CF、OF等标志位的值。sub al,almov al,10hadd al,90hmov al,80hadd al,80hmov al,0fchadd al,05hmov al,7dhadd al,0bh
CF    OF    SF    ZF    PF
答案:                    al                CF      OF      SF      ZF      PF                sub al,al         0h/0000 0000b             0       0       0      1     1mov al,10h          10h/0001 0000b            0      0       0       1     1add al,90h          a0h/1010 0000b            0      0       1       0     1mov al,80h          80h/1000 0000b            0      0       1       0     1add al,80h          0h/0000 0000b             1      1       0       1     1mov al,0fch         0fch/1111 1100b           1      1       0      1     1add al,05h           1h/0000 0001b             1      0      0       0     0mov al,7dh           7dh/0111 1101b            1      0      0       0     0add al,0bh           88h/1000 1000b            0      1      1       0     1
解析:第一条指令:sub al,al。此时al的值为0,那么自然没有借位,也不会有溢出,不是负数,值为0,二进制中都是0,也就是0个1。第二条指令:mov al,10h。我们只需要知道如mov、push、pop等指令不会对标志寄存器有影响就可以了。第三条指令:add al,90h。这里就是10h+90h=0001 0000b+1001 0000b=1010 0000b=a0h。先看CF位,我们可以看到没有进位
(可以自己用计算器算下,不过要调为字型数据再去算);接下来是OF位,我们将10h换为十进制有符号数据为16,90h则为-112,
a0为-96也就是16-112=-96,正确,所以没有溢出。需注意的是:首先是转换为有符号数据是计算器要是字节型数据。其次,
在判断溢出时,如果答案我们算的一样,就是没有溢出,如果出现了正数+正数=负数一类的,那就是溢出了。
SF位是对于有符号数据来说的,也就是-96。PF位要注意是低8位就可以(不过这里也没有高8位,而且这个考的不多,知道就好)。第五条指令:add al,80h。80h+80h=1000 0000b+1000 0000b=0000 0000b(0001 0000 0000b)=0h(100h)。
我们知道al是字节型的,只可以存储8。通过上边的式子我们也可以很明显的看出存在进位的现象。
所以如果用计算器(字节型)算的话就是0,如果是用字型计算器算的话就是另一个结果,因此CF=1。
80h对应的无符号数据是-128,最后的结果为(-128)+(-128)=0。负数加负数为0,肯定是溢出了。其他省略了。第七条指令: add al,05h。0fch+05h=1111 1100b+0000 0101b=0000 0001b(1 0000 0001b)=1h(101h)。
有符号运算(-4)+5=1。所以有进位,没有溢出。第九条指令:add al,0bh。7dh+0bh=0111 1101b+0000 1011b=1000 1000b=88h。有符号运算120+5=(-120)。
所以无进位,有溢出。

标志寄存器CF,OF,SF,ZF,PF以及相关练习相关推荐

  1. 标志寄存器 CF PF AF ZF SF OF TF IF

    标志寄存器,里面有众多标记位,记录了CPU执行指令过程中的一系列状态,这些标志大都由CPU自动设置和修改: CF 进位标志 MOV AL,0XFF ADD AL,1这个时候AL超出FF的最大值就进位了 ...

  2. 【汇编语言】状态标志符(CF/OF/SF/ZF)在运算(ADD/SUB/ADC/SBB)过程中的响应变化

    目录 各类运算时状态标志的响应变化 标志符在各种`ADD`运算下的响应情况 标志符在各种`SUB`运算下的响应情况 借助标志符实现多位数之间运算 `ADC`(add with carry)带进位加法指 ...

  3. 2.04 标志寄存器

    1.写出下面每条指令执行后,ZF.PF.SF等标志位的值. 答: sub al,al ZF=1 PF=1 SF=0 mov al,1 ZF=1 PF=1 SF=0 push ax ZF=1PF=1SF ...

  4. 汇编语言随笔(3)-条件转移指令和标志寄存器

    标志寄存器 标志寄存器通常具有以下三种作用:       1,用来存储相关指令的某些执行效果       2,用来为CPU执行相关指令提供行为依据       3,用来控制CPU的相关工作方式     ...

  5. 汇编中的通用寄存器、标志寄存器、段寄存器

    通用寄存器: 寄存器和变量差不多,目的都是用于保存一些即将操作的数据 EAX(accumulator) 寄存器:扩展累加寄存器(一般在乘/除中会被主动调用),也可以用于其他用途 ECX(Count) ...

  6. 《汇编语言(第三版)》标志寄存器

    标志寄存器 8086CPU中的flag寄存器包括: CF.PF.ZF.SF.OF.DF. 传送指令不影响标志寄存器 ZF标志寄存器 zf标志寄存器位于flag中的第6为,表示零标志位.(至于flag是 ...

  7. 8086标志寄存器介绍及作用(未完)

    标志寄存器结构: 寄存器分类: 状态标志:CF(无符),PF,AF (无符),ZF,SF (有符),OF (有符) 控制标志:TF,IF,DF 1.CF标志(carry flag) 进位标志位 记录无 ...

  8. 汇编语言笔记(三): 标志寄存器

    章节目录 简介 ZF 标志寄存器 PF 标志寄存器 SF 标志寄存器 CF 标志寄存器 OF 标志寄存器 几条相关指令 DF 标志寄存器 PUSHF and POPF 标志寄存器 作者能力有限, 如果 ...

  9. 我是如何学习Java的~标志寄存器及其应用

    在8086CPU内部的寄存器中,还存在着一种特殊的寄存器,一些指令的执行会触发该寄存器中特定位的值的改变,以用来记录指令执行的一些结果情况.这个寄存器被称为标志寄存器. 标志寄存器也是16位,但不是每 ...

最新文章

  1. 2017年7月十三日正式开始记录
  2. 程序集强命名与GAC
  3. 使用NSURLCache 数据缓存
  4. 字王谈M1字形与个人云字库
  5. 系统背景描述_【计算机论文】管件加工管理系统和数据库的结构探析
  6. python中cursor操作数据库(转)
  7. Python数据结构:选择排序
  8. 上传相关js和jquery对象
  9. 读书笔记之inside JVM(4)
  10. Introduction to Chinese natural language processing
  11. 【Luogu3371】【模板】单源最短路径(SPFA)
  12. 机器学习- 吴恩达Andrew Ng Week4 神经网络Neural Networks知识总结
  13. Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用...
  14. 移动硬盘上安装Ubuntu18.04系统
  15. 单调栈-leetcode-739. 每日温度
  16. .net MVC 局部视图
  17. 解决Extraneous non-props attributes (border, class) were passed to component but could not be
  18. pythoneducoder苹果梨子煮水的功效_荸荠和梨子一起煮的好处
  19. 【Lighthouse教程】Win10远程连接同步代码
  20. HDU1864 最大报销额 01背包

热门文章

  1. 微信支付后 对账管理
  2. IntelliJ IDEA 在线破解
  3. Arduino控制RGB三色LED灯实验、程序代码、连线图、仿真
  4. Android中的View绘制原理
  5. 教你使用 SO_REUSEPORT 套接字选项提升服务性能
  6. 微信小程序居中、居右、居底和横向、纵向布局,文字在图片中间,网格布局
  7. 我的世界服务器聊天微信互通,若《我的世界》加入了“微信”,6个场景还原,怪物们会聊些啥?...
  8. shell获得某月最后一天
  9. 26、Java——迷你图书管理器(对象+IO流)
  10. asp 网页查看网吧超时电脑