状态标志寄存器FLAGS
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=0ZF-零标志:运算结果为0,则ZF=1,否则ZF=0
SF-符号标志:运算结果为负数时,SF=1
对于符号数,最高位是符号位,因此SF相当于就是判别最高位是否为1,最高位是1表示是负数,SF=1OF-溢出标志:运算结果是否超出规定范围,超出范围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. 什么是状态标志寄存器 状态标志位(Status Flags): 状态标志被分配到到一个称为标志寄存器(Status Flags Register)的特殊寄存器中. 该寄存器包含: Zero Fl ...
- 标志寄存器(FLAGS,PSW,FR)简介
标志寄存器简介 8086CPU中设立了一个两字节的标志寄存器,有9个标志位,其中6个用来表示运算结果的状态包括CF.PF.AF.ZF.SF.OF,称为状态标志位,另外3个是控制标志位,用来控制CPU的 ...
- 8086状态标志寄存器含义
只使用其中9位,6个状态标志位,3个控制标志位 用于存放指令执行过程中的结果和特征 标志位 全称 名称 =1 =0 CF Carry Flag 进位标志 CY/Carry/进位 NC/No Carry ...
- 状态标志寄存器--EFLAGS
EFLAGS寄存器有控制CPU的操作或反映CPU某些运算的结果的独立二进制位构成. 标志位 名称 全称 作用 CF 进位标志 Carry Flag 无符号算术运算的结果太大而目的操作数无法容纳时置位 ...
- 8086状态标志寄存器的英文含义(调试用
标志位 全称 名称 =1 中文解释 =0 CF Carry Flag 进位标志 CY Carry/进位 NC PF Parity Flag 奇偶标志 PE Parity Event/偶 PO AF A ...
- 贺利坚老师汇编课程54笔记:标志寄存器
指路老师的博客 8086状态标志寄存器含义 FLAG标志寄存器:PSW/FLAGS,别称:程序状态字 8086CPU指令集中,有的指令的执行是影响标志寄存器,比如:add,sub,mul,div,in ...
- 8086CPU有哪些寄存器组成?各有什么用途?标志寄存器的各标志位在什么情况下置位?
答:共有14个寄存器,分成3部分: (1) 通用寄存器8个:AX,BX,CX,DX,SP,BP,SI,DI. AX,BX,CX,DX为数据寄存器,用来保存运算中的中间结果和有效地址. ...
- 汇编:CPU结构 - FLAG标志寄存器和相关指令
文章目录 一.概述 1.标志寄存器的作用 2.8086CPU标志寄存器的结构 3.debug查看标志位 二.标志位 1.CF(0):进位标志位 2.PF(2):奇偶标志位 3.AF(4):辅助进位标志 ...
- 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.如果算术 ...
最新文章
- 皮一皮:藏头诗有时候也不能太藏...
- std::mutex
- php globals_PHP $ GLOBALS(超级全局变量),带有示例
- Jelinek-Merer与Absolute discounting 平滑方法
- canal+Kafka实现mysql与redis数据同步
- pytorch构造可迭代的DataLoader,动态流式读取数据源,不担心内存炸裂(pytorch Data学习三)
- css中利用margin来隐藏元素
- matlab对一个数组进行补零,matlab 输出 整数 补0
- javaweb小说阅读网站源码
- 计算机远程桌面修复,大师教您Win10远程桌面连接的修复手段
- 如何查看本机IP及端口
- 【免费】多种方法手把手教你如何将自己做的网页做成网络链接(直接访问)
- 关闭计算机睡眠模式,电脑睡眠模式怎么关闭
- 微信公众平台:JustOracle(微信号:justoracle)现已开通,热忱欢迎你的加入
- 新闻发布管理系统/新闻网站
- 五年以太扩容梦 破壁原是枕边人——记2016年G神与V神的ETH 2.0路线之争
- 什么是HTTPS协议?HTTPS协议优势有哪些?
- 感芯科技MC3172移植U8g2图形库
- Page “xxx“ has not been registered yet.
- odrive搭建差速小车+轮毂电机+RC航模控制器