精华内容
下载资源
问答
  • 状态标志寄存器FLAGS

    千次阅读 2020-05-02 20:53:58
    FLAGS 称为标志寄存器或程序状态字(Program Status Word, PSW)。 标志寄存器是一个16 位的寄存器,8088 只使用了其中 9 位,分为两类:一类称为状态标志,反映指令执行结的特征,共有 6 位。另一类是控制标志,...

    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----小总结

    万次阅读 2013-05-20 17:50:34
    8086cpu有14个16位寄存器,而标志寄存器FLAGS又是其中非常复杂的一个。 首先简单总结一下8086cpu的14个16位寄存器。 8086cpu寄存器分类:  一,8个通用寄存器。  1, 4个数据寄存器 AX,BX,CX,DX

    学习汇编语言程序设计,不可能不涉及到各种寄存器的知识。8086cpu有14个16位寄存器,而标志寄存器FLAGS又是其中非常复杂的一个。


    首先简单总结一下8086cpu的14个16位寄存器。


    8086cpu寄存器分类:

       一,8个通用寄存器。

                    1,    4个数据寄存器      AX,BX,CX,DX

                    2, 两个指针寄存器       SP,BP

                    3, 两个变址寄存器       SI,DI

      二,4个段寄存器         CS,DS,SS,ES

      三,两个控制寄存器      IP,FLAGS


    我觉得在这些寄存器中,FLAGS最难学。其九个标志位都代表着不同的含义,用以表现微处理器当前状态和某些控制。


    一,状态标志:

    CF:进位位。

    如果运算结果的最高位产生一个进位或错位,则CF置1,否则CF清零。

    PF:奇偶位。

    如果运算结果低8位中“1”的个数为偶数时,则PF置。

    否则PF清0。

    AF:辅助进位位。

    反应运算结果低四位产生进位或错位的情况。

    ZF:零值位。

    如果运算结果为零则ZF置1。否则清零。

    SF:符号位。

    如果运算结果为负,即一个数的最高位为1,则SF置1,否则SF清零。

    OF:溢出位。

    若运算结果超出补码表示范围(8位-128~+127,16位-32768~+32767)。若溢出,OF置1,否则OF清0。

    二,控制标志

    TF:单步标志位

    用于程序跟踪调试。当TF=1,CPU进入单步方式。

    IF:中断允许位

    当IF=1时,CPU为开中断。

    当IF=0时,CPU为关中断。

    DF:方向位

    决定串操作指令执行时的指针寄存器的调整方向。至今我还没接触过。




    另外,可以用debug来查看寄存器中各位的值。

    输入r指令。得到右下角的字母就是状态寄存器各位的值。



    这个是符号值对应表:

    溢出标志OF(Over flow flag)                             OV(1)                         NV(0)

    方向标志DF(Direction flag)                             DN(1)                         UP(0)

    中断标志IF(Interrupt flag)                             EI(1)                         DI(0)

    符号标志SF(Sign flag)                                  NG(1)                         PL(0)

    零标志ZF(Zero flag)                                    ZR(1)                         NZ(0)

    辅助标志AF(Auxiliary carry flag)                       AC(1)                         NA(0)

    奇偶标志PF(Parity flag)                                PE(1)                         PO(0)

    进位标志CF(Carry flag)                                 CY(1)                         NC(0)




    展开全文
  • 标志寄存器(FLAGS,PSW,FR)简介

    千次阅读 2020-06-25 18:12:53
    标志寄存器简介 8086CPU中设立了一个两字节的标志寄存器,有9个标志位,其中6个用来表示运算结果的状态包括CF、PF、AF、ZF、SF、OF,称为状态标志位,另外3个是控制标志位,用来控制CPU的操作,包括IF、DF和TF。 各...

    标志寄存器简介

    8086CPU中设立了一个两字节的标志寄存器,有9个标志位,其中6个用来表示运算结果的状态包括CF、PF、AF、ZF、SF、OF,称为状态标志位,另外3个是控制标志位,用来控制CPU的操作,包括IF、DF和TF。
    各标志位的定义说明如下:
    

    CF(Carry Flag)–进位标志位

    如果做加法时最高位(字节操作是D~2~位,字操作是D~15位)产生进位或做减法时最高位产生借位,则CF=1,否则CF=0。
    

    PF(Parity Flag)–奇偶标志位

    如果操作结果的低八位中含有偶数个1,则PF=1,否则PF=0。
    

    AF(Auxiliary Flag)–辅助进位标志位

    如果做加法时D~3~位有进位或者做减法是时D~3~位有借位,则AF=1,否则AF=0。
    

    ZF(Zero Flag)–零标志位

    如果运算结果各位都为零,则ZF=1,否则ZF=0。
    

    SF(Sign Flag)–符号标志位

    如果运算结果的最高位(字节操作是D~7~位,字操作是D~15~位)为1,则SF=1,否则SF=0。
    

    OF(Overflow Flag)–溢出标志位

    在加法和减法运算中结果超出8位或者16位有符号数所能表示的数值范围时,产生溢出,OF=1,否则OF=0。
    

    IF(Interrupt Flag)–中断标志位

    可用指令设置。当IF=1时,CPU可响应可屏蔽中断请求;IF=0时,CPU不响应可屏蔽中断控制请求。
    

    TF(Trap Flag)–单步标志位

    假如TF=1,则CPU处于单步工作方式。在这种工作方式下,CPU每执行完一条指令就产生一次内部中断。在调试程序DEBUG中,T命令就是利用这种中断。
    

    DF(Direction Flag)–方向标志位

    在串处理指令中,若DF=0则表示串处理指令地址指针自动增量,即串操作由低地址向高地址进行;DF=1,则表示指针自动减量,即串操作由高地址向低地址进行。DF标志位可通过指令预置。
    
    展开全文
  • FLAGS标志寄存器

    千次阅读 2013-06-23 11:30:25
    标志寄存器Flags Register,FR)又称程序状态字(Program Status Word,PSW)。这是一个存放条件标志、控制标志寄存器,主要用于反映处理器的状态和运算结果的某些特征及控制指令的执行。 CF(Carry Flag)...

    标志寄存器(Flags Register,FR)又称程序状态字(Program Status Word,PSW)。这是一个存放条件标志、控制标志寄存器,主要用于反映处理器的状态和运算结果的某些特征及控制指令的执行。


    CF(Carry Flag)进位标志:用于反映运算是否产生进位或借位。如果运算结果的最高位产生一个进位或借位,则CF置1,否则置0。运算结果的最高位包括字操作的第15位和字节操作的第7位。移位指令也会将操作数的最高位或最低位移入CF。
    PF(Parity Flag)奇偶标志:用于反映运算结果低8位中“1”的个数。“1”的个数为偶数,则PF置1,否则置0。
    AF(Auxiliary Carry Flag)辅助进位标志:在字节操作时低半字节向高半字节进位或借位,字操作时低字节向高字节进位或借位,AF置1,否则置0。
    ZF(Zero Flag)零标志:用于判断结果是否为0。运算结果0,ZF置1,否则置0。
    SF(Sign Flag)符号标志:用于反映运算结果的符号,运算结果为负,SF置1,否则置0。因为有符号数采用补码的形式表示,所以SF与运算结果的最高位相同。
    OF(Overflow Flag)溢出标志:反映有符号数加减运算是否溢出。如果运算结果超过了8位或者16位有符号数的表示范围,则OF置1,否则置0。
    控制标志:
    TF(Trap Flag)陷阱标志:当TF被设置位1时,CPU进入单步模式,所谓单步模式就是CPU在每执行一步指令后都产生一个单步中断。主要用于程序的调试。8086/8088中没有专门用来置位和清零TF的命令,需要用其他办法。
    IF(Interrupt Flag)中断标志:决定CPU是否响应外部可屏蔽中断请求。IF为1时,CPU允许响应外部的可屏蔽中断请求
    DF(Direction Flag)方向标志:决定串操作指令执行时有关指针寄存器调整方向。当DF为1时,串操作指令按递减方式改变有关存储器指针值,每次操作后使SI、DI递减。
    各标志位名称、英文全称、标志值符号及含义一览:
    标志位
    标志位名称/英文
    =1
    =0
    CF
    进位标志/Carry Flag
    CY/Carry/进位
    NC/No Carry/无进位
    PF
    奇偶标志/Parity Flag
    PE/Parity Even/偶
    PO/Parity Odd/奇
    AF
    辅助进位标志/Auxiliary Carry Flag
    AC/Auxiliary Carry/进位
    NA/No Auxiliary Carry/无进位
    ZF
    零标志/Zero Flag
    ZR/Zero/等于零
    NZ/Not Zero/不等于零
    SF
    符号标志/Sign Flag
    NG/Negative/负
    PL/Plus/正
    TF
    陷阱标志/Trap Flag
       
    IF
    中断标志/Interrupt Flag
    EI/Enable Interrupt/允许
    DI/Disable Interrupt/禁止
    DF
    方向标志/Direction Flag
    DN/Down/减少
    UP/增加
    OF
    溢出标志/Overflow Flag
    OV/Overflow/溢出
    NV/Not Overflow/未溢出


    展开全文
  • 标志寄存器(PSW)

    千次阅读 2020-03-09 22:57:41
    标志寄存器 标志寄存器又称程序状态字PSW(Program Status Word) 标志Flag用于反映指令执行结果或控制指令的执行形式。许多指令执行后将影响有关的...Intel8086支持的标志形成了一个16位的标志寄存器FLAGS。以后各带...
  • 寄存器简称 全称 =1 =0 详解 CF Carry Flag(进位标志) 进位 无进位 用于反映运算是否产生进位或借位。如果运算结果的最高位产生一个进位或借位,则CF置1,否则置0。运算结果的最高位包括字操作的第15位和...
  • 8086标志寄存器Flag Register is a 16-bit register, but there are only 9 flags available in the 8086 microprocessor. The rest 7 bits are hence left idle. 标志寄存器是一个16位寄存器,但是8086微处理器中...
  • IA-32 and Intel 64 (x86 &...16位标志寄存器FLAGS 由于Intel处理器在指令集架构层面上始终保持了向前兼容性,所以标志寄存器中的各个标志位的位置与功用在各代处理器之间都保持不变,所以对这些16位的标...
  • 标志寄存器

    2012-03-02 13:33:52
     标志寄存器Flags Register,FR)又称程序状态字(Program Status Word,PSW)。这是一个存放条件标志、控制标志寄存器,主要用于反映处理器的状态和运算结果的某些特征及控制指令的执行  各标志在标志寄存器中的...
  • 标志寄存器标志寄存器概述负数存储过程(划到最后面看)相关指令ZF标志寄存器PF标志寄存器SF标志寄存器CF标志寄存器OF标志寄存器DF寄存器 标志寄存器概述 在计算机中,有一个专用16位的寄存器FLAGS(标识寄存器)。 ...
  • 1、子程序安全调用 ... 在计算机中,有一个专用16位的寄存器FLAGS(又称:标志寄存器)。  标志寄存器是按位起作用的,每一位都有专门的含义,记录特定的信息。  FLAGS寄存器结构:  0 CF进位(是/否) ...
  • 8086CPU的标志寄存器(flags Register, FR)有16位,其中存储的信息通常被称为程序状态字(PSW),flag寄存器与其他寄存器不同,flag寄存器是按位起作用的。8086的flag寄存器中有CF、PF、ZF、SF、OF、DF标志位。 ...
  • FLAG标志寄存器:PSW/FLAGS,别称:程序状态字 8086CPU指令集中,有的指令的执行是影响标志寄存器,比如:add,sub,mul,div,inc,or,and,他们大都是运算指令,进行逻辑或算数运算 有的指令的执行对标志寄存器没有...
  • FKAGS成为标志寄存器或程序状态字(PSW),它是16位寄存器,但只使用其中的9位。 这9位包括6个状态标志和3个控制标志。 不同指令对标志位具有不同的影响。 CF 进位标志位 Mov a1,98H Add al,al ;执行后
  • 8086寄存器

    2019-10-12 19:51:20
    8086寄存器寄存器类型标记寄存器debug下标记位说明标志...8086支持16位标志寄存器FLAGS 状态标志:记录指令执行结果的辅助信息(分支指令判断这些条件实现程序分支) 控制标志:控制处理器执行指令的方式 debug...
  • 标志寄存器的系统标志位与IO特权级(IOPL)域可以用来控制I/O,可屏蔽硬件中断,程序调试,任务切换,以及设置虚拟8086模式(参看下图)。只有特权代码(通常是操作系统或者管理代码)被允许修改这些标志位。 ...
  • 对EFLAGS寄存器中状态标志的总结。
  • 8086 寄存器架构

    2020-04-23 21:19:09
    8086 由执行单元EU 和 总线结构单元BIU 两大部分...数据在 ALU 中进行运算,运算结果的特征保留在标志寄存器 FLAGS中。 总线接口单元 BIU 主要功能是:负责CPU与存储器、I/O接口之间的信息传送。它由段寄存器、指令指
  • 8086CPU的寄存器

    2020-10-06 16:04:42
    8086CPU的寄存器通用寄存器数据通用寄存器地址指针与变址寄存器控制寄存器指令指针寄存器IP标志寄存器Flags 为了提高CPU的运算速度,减少访问存储器的存取操作,8086CPU内置了相应寄存器,用来暂存参加运算的操作数...
  • Status Flags 状态标志位(比特位0,2,4,6,7和11)指示了算术指令的结果,例如ADD,SUB,MUL,与DIV指令。 标志位 描述 CF(bit 0) 进位/借位Carry。如果算术指令的结果...
  • 4.1 Systems Registers系统寄存器 The registers designed for use by systems programmers fall into these classes: ...EFLAGS标志寄存器FLAGS Memory-Management Registers内存管理寄存器 Control Regis...
  • 知识点通用寄存器段寄存器CS、SS、DS、ES控制寄存器IP标志寄存器FLAGS 8088/8086内部共有14个16位寄存器。按其功能可以分为三大类:通用寄存器(8个)、段寄存器(4个)、控制寄存器(2个) 通用寄存器 通用寄存器...
  • FLAGS寄存器是Intel x86微处理器中的状态寄存器,它包含处理器的当前状态。...所有标志寄存器都包含条件码,标志位可以让一个机器语言指令的结果影响另一个指令。算术和逻辑指令设置部分或全部标志
  • 内部寄存器

    2017-05-01 00:08:37
    寄存器FLAGS标志寄存6个状态标志位 CF:Carry Flag。进位标志位。加(减)法运算时,若最高位有进(借)位,则CF=1 SF:Sign Flag。符号标志位。当运算结果的最高位为1时ZF=1 AF:Auxiliary Carry Flag。辅助进位标志位。加...
  • 系统寄存器 系统指令

    2016-09-01 17:31:22
    EFLAGS (标志寄存器) Memory-Management Registers (内存管理寄存器) Control Registers (控制寄存器) Debug Registers (调试寄存器) Test Registers (测试寄存器) 4.1.1 系统标志 (System Flags) ...
  • 汇编语言基础

    2018-06-15 15:24:00
    标志寄存器FLAGS 15 14 13 12 11 10 9 8 7 6 5 4 3 ...
  • 第二章 寄存器

    2019-07-01 09:00:31
    通用寄存器: AX 累加器,算术运算主要寄存器 BX 基址寄存器 CX 计数器 DX 数据寄存器 SP 堆栈指针寄存器,指示段顶的偏移地址 BP 基址指针寄存器,堆栈区中的一个基地址 ...FLAGS 标志寄存器(OF,CF,SF,ZF...
  • 寄存器的认识

    2019-07-23 08:53:55
    寄存器是中央处理器内的组成部分。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址...dh,dl的八位寄存器)、指令指针寄存器(ip)、标志寄存器flags)、段寄存器(cs,ds,es,ss)。它们的...

空空如也

空空如也

1 2 3 4 5
收藏数 85
精华内容 34
关键字:

标志寄存器flags