FLAGS 称为标志寄存器或程序状态字(Program Status Word, PSW)。
标志寄存器是一个16 位的寄存器,8088 只使用了其中 9 位,分为两类:一类称为状态标志,反映指令执行结的特征,共有 6 位。另一类是控制标志,用于控制微处理器的操作,共有 3 位。

  • 6个状态标志位(CF、SF、AF、PF、OF、ZF)
  • 3个控制标志位(IF、TF、DF)

  • CF-进位标志:算术运算时有进位CF=1,无进位CF=0
    这里针对的是最高位向前有没有进位,注意与AF区分

  • PF-奇偶标志:运算结果中“1”的个数为偶数时PF=1,为奇数个则PF=0
    但是如果运算结果是16位数的话,PF标志只关注运算结果的低八位

  • AF-辅助进位标志:第三位向第四位有进位时AF=1
    举个例子
    0101 0000+ 1000 1111=1101 1111
    第三位分别是 0和1,相加并没有进位,所以AF=0

  • ZF-零标志:运算结果为0,则ZF=1,否则ZF=0

  • SF-符号标志:运算结果为负数时,SF=1
    对于符号数,最高位是符号位,因此SF相当于就是判别最高位是否为1,最高位是1表示是负数,SF=1

  • OF-溢出标志:运算结果是否超出规定范围,超出范围OF=1,未超出OF=0
    很容易把OF标志的判别方法和CF混淆,这里有一个简便的方法就是看最高位:

如果两个运算数最高位不一样,那么OF=0;
如果都是1,运算结果最高位是0,那么OF=1,否则OF=0
如果都是0,运算结果是最高位是1,那么OF=1,否则OF=0

控制标志:

  • IF-中断允许标志IF=1,中断允许
  • DF-方向标志:用于在串操作指令中控制地址指针变化的方向,DF=0地址指针按增量变化,DF=1地址指针按减量变化
  • TF-跟踪标志TF=1,为单步工作方式,即CPU每执行一条指令就产生一次中断,此时程序员可以查看CPU内部寄存器的内容、存储单元的内容和标志寄存器的内容等。这个中断主要用于程序调试。

状态标志寄存器FLAGS相关推荐

  1. 状态标志与状态标志寄存器

    1. 什么是状态标志寄存器 状态标志位(Status Flags): 状态标志被分配到到一个称为标志寄存器(Status Flags Register)的特殊寄存器中. 该寄存器包含: Zero Fl ...

  2. 标志寄存器(FLAGS,PSW,FR)简介

    标志寄存器简介 8086CPU中设立了一个两字节的标志寄存器,有9个标志位,其中6个用来表示运算结果的状态包括CF.PF.AF.ZF.SF.OF,称为状态标志位,另外3个是控制标志位,用来控制CPU的 ...

  3. 8086状态标志寄存器含义

    只使用其中9位,6个状态标志位,3个控制标志位 用于存放指令执行过程中的结果和特征 标志位 全称 名称 =1 =0 CF Carry Flag 进位标志 CY/Carry/进位 NC/No Carry ...

  4. 状态标志寄存器--EFLAGS

    EFLAGS寄存器有控制CPU的操作或反映CPU某些运算的结果的独立二进制位构成. 标志位 名称 全称 作用 CF 进位标志 Carry Flag 无符号算术运算的结果太大而目的操作数无法容纳时置位 ...

  5. 8086状态标志寄存器的英文含义(调试用

    标志位 全称 名称 =1 中文解释 =0 CF Carry Flag 进位标志 CY Carry/进位 NC PF Parity Flag 奇偶标志 PE Parity Event/偶 PO AF A ...

  6. 贺利坚老师汇编课程54笔记:标志寄存器

    指路老师的博客 8086状态标志寄存器含义 FLAG标志寄存器:PSW/FLAGS,别称:程序状态字 8086CPU指令集中,有的指令的执行是影响标志寄存器,比如:add,sub,mul,div,in ...

  7. 8086CPU有哪些寄存器组成?各有什么用途?标志寄存器的各标志位在什么情况下置位?

    答:共有14个寄存器,分成3部分:  (1) 通用寄存器8个:AX,BX,CX,DX,SP,BP,SI,DI.         AX,BX,CX,DX为数据寄存器,用来保存运算中的中间结果和有效地址. ...

  8. 汇编:CPU结构 - FLAG标志寄存器和相关指令

    文章目录 一.概述 1.标志寄存器的作用 2.8086CPU标志寄存器的结构 3.debug查看标志位 二.标志位 1.CF(0):进位标志位 2.PF(2):奇偶标志位 3.AF(4):辅助进位标志 ...

  9. Intel 64/x86_64/x86/IA-32处理器标志寄存器详解(4) - 32位EFLAGS - 状态标志与控制标志

    Status Flags 状态标志位(比特位0,2,4,6,7和11)指示了算术指令的结果,例如ADD,SUB,MUL,与DIV指令. 标志位 描述 CF(bit 0) 进位/借位Carry.如果算术 ...

最新文章

  1. 皮一皮:藏头诗有时候也不能太藏...
  2. std::mutex
  3. php globals_PHP $ GLOBALS(超级全局变量),带有示例
  4. Jelinek-Merer与Absolute discounting 平滑方法
  5. canal+Kafka实现mysql与redis数据同步
  6. pytorch构造可迭代的DataLoader,动态流式读取数据源,不担心内存炸裂(pytorch Data学习三)
  7. css中利用margin来隐藏元素
  8. matlab对一个数组进行补零,matlab 输出 整数 补0
  9. javaweb小说阅读网站源码
  10. 计算机远程桌面修复,大师教您Win10远程桌面连接的修复手段
  11. 如何查看本机IP及端口
  12. 【免费】多种方法手把手教你如何将自己做的网页做成网络链接(直接访问)
  13. 关闭计算机睡眠模式,电脑睡眠模式怎么关闭
  14. 微信公众平台:JustOracle(微信号:justoracle)现已开通,热忱欢迎你的加入
  15. 新闻发布管理系统/新闻网站
  16. 五年以太扩容梦 破壁原是枕边人——记2016年G神与V神的ETH 2.0路线之争
  17. 什么是HTTPS协议?HTTPS协议优势有哪些?
  18. 感芯科技MC3172移植U8g2图形库
  19. Page “xxx“ has not been registered yet.
  20. odrive搭建差速小车+轮毂电机+RC航模控制器

热门文章

  1. 实践检验递归查询SQL
  2. xtile 下载_SMAPI出现问题有没有大佬帮忙解决一下
  3. 408真题和模拟题应该怎么刷
  4. Vue3 css实现背景图片
  5. 8.4.3.1 模板方法模式
  6. Linux Nginx的安装与配置(全程图文记录超详细)
  7. 网页图片采集教程(如何采集图片)
  8. pyqt(一)pyqt环境搭建 win+mac(pycharm+designer)
  9. 微信小程序多图上传/朋友圈传图效果【附完整源码】
  10. CMMI2.0之我见-需求开发和管理RDM