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

标志寄存器
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。



标志寄存器在 Debug 中的表示

在寄存器中,标志局存起是按有意义的各个标志位单独表示的。在 Debug 中,我们可以看到:

标志值为1的标记值为0的标记
ofOVNV
sfNGPL
zfZRNZ
pfPEPO
cfCYNC
dfDNUP
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ninding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值