码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-01-22 23:08:08      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:意义   有符号   汇编语言   判断   溢出   运算   cpu   无符号   汇编   

标志寄存器

8086CPU中的flag寄存器包括:

    CF、PF、ZF、SF、OF、DF。

    传送指令不影响标志寄存器

 

 

 

ZF标志寄存器

    zf标志寄存器位于flag中的第6为,表示零标志位。(至于flag是什么,暂时不用管)

  ZF寄存器的作用

    判断指令执行后结果是否为0。

  举例

    mov ax,1

    sub ax,1

    该指令执行后结果为0,ZF=1

 

 

PF标志寄存器

    pf标志寄存器位于flag中的第2位,表示奇偶标志位。

  PF寄存器的作用

    判断指令执行完之后结果中bit位为1的个数是否为偶数。如果1的个数为偶数,pf=1;如果为奇数,pf=0。

  举例

    mov al,1

    add al,10

    执行后结果为00001011B,其中有3个1,pf=0。

 

 

SF标志寄存器

    sf标志寄存器位于flag中的第7位,表示符号标志位。

  SF寄存器的作用

    判断指令执行之后结果是否为负。如果为负,sf=1。

  SF寄存器的特点

    如果我们进行无符号运算,sf寄存器无意义,如果进行有符号运算,sf记录正负。

  举例

    00000001B 可以看做无符号数1,有符号数+1。

    10000001B 可以看做无符号数129,有符号数-127。

    无符号加法:

      mov al,10000001B

      add al,1

      结果 al = 10000010B,表示129+1 = 130。

    有符号加法:

      mov al,10000001B

      add al,1

      结果 al = 10000010B, sf=1,表示-127+1 = -126。

 

 

CF标志寄存器

    cf标志寄存器位于flag中的第0位,表示仅为标志位。

  CF寄存器的作用

    在无符号数运算的时候,它录入了运算结果的最高有效位向更高位进位的进位值,或从更高位的借位值。

  CF寄存器的特点

    仅在无符号运算时起作用。

  举例

    进位:

      mov al,98h

      add al,al

      执行后al=30h,cf=1,cf记录了从最高有效位向更高位的进位值。

      add al,al

      执行后al=60h,cf=0,cf记录了从最高有效位向更高位的进位值。

    借位:

      mov al,97h

      sub al,98h

      执行后al=ffh,cf=1,cf记录了向更高位的借位值。

      sub al,al

      执行后al=0,cf=0,cf记录了向更高位的借位值。

 

 

OF标志寄存器

    of标志寄存器位于flag中的第11位,表示溢出标志位。

  OF寄存器的作用

    判断计算后的结果是否溢出。溢出,of=1;不溢出,of=0。

  OF寄存器的特点

    OF仅在有符号数运算时起作用。

  举例

    mov al,0f0h

    add al,88h

    指令执行后发生了溢出of=1。

    mov al,0f0h

    add 78h

    指令执行后不发生溢出of=0。

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

标签:意义   有符号   汇编语言   判断   溢出   运算   cpu   无符号   汇编   

原文地址:https://www.cnblogs.com/zhangjiuding/p/8331307.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!