硬件基础--i386标志寄存器

i386寄存器主要包括

  • 一个16位标志寄存器
  • 4个内存管理寄存器
  • 4个控制寄存器以及调试寄存器

下面先介绍标志寄存器:

硬件基础--i386标志寄存器_第1张图片
16位标志寄存器

各位置代表的意义:

  • 第0位(CF):无符号数进位标志。当两个数相加且相加产生进位
    后的数据大于寄存器所能存储的数据的最大值时,CF=1。
  • 第2位(PF):奇偶校验位。如:
       mov ax,5
       add ax,2

执行后其结果为7,二进制表达是111,1的个数为奇数,即PF的值为0

  • 第4位(AF):辅助进位标志符。在字操作时,当发生低字节向
    高字节进位或借位时,或在字操作时,低四位向高四位进位或借位时,
    AF的值为1,其他情况为AF=0。
  • 第6位(ZF):0标志位。当两个数据进行运算后,如果运算结果为0,
    则ZF=1,否则ZF=0。
  • 第7位(SF):符号位,代表是否为负数。如果两个数运算结果为负
    数,则SF=1。
  • 第8位(TF):陷阱标志。当TF=1,设置为单步调试模式;当TF=0,
    关闭单步模式。
  • 第9位(IF):中断允许标志位,决定CPU是否响应CPU外部的可屏
    蔽中断发生的中断请求。
  • 第10位(DF):方向标志位。
    硬件基础--i386标志寄存器_第2张图片
    第10位DF Flag

方向标志位用于控制字符串指令处理字符串时的方式。当DF=1时,从高地址到低地址;DF=0时,从低地址到高地址。

  • 第11位(OF):有符号数溢出标志位。
    OF Flag

如果整数结果是一个太大的正数或太小的负数(不包括符号位)以适应
目标操作数,那么OF=1;否则为0。这个标志位用于判断一个有符号整数
运算是否发生溢出。

参考:《LINUX内核注释》、《INTEL开发人员手册》

你可能感兴趣的:(硬件基础--i386标志寄存器)