汇编语言学习之标志寄存器

ZF标志

  • 零标志位,它记录相关指令执行后,其结果是否为0.如果结果为0,那么zf=1,反之,则zf=0.
  • 影响zf标志的大都是运算指令。

PF标志

  • 奇偶标志位,它记录相关指令执行后,其结果的所有bit位中1的个数是否位偶数。如果1的个数为偶数,pf=1,如果为奇数,那么pf=0.

SF标志

  • 符号标志位,它记录相关指令执行后 ,其结果是否为负。如果结果为负,sf=1;如果非负,sf=0.

CF标志

  • 进位标志位,一般情况下,在进行无符号数运算的时候,它记录了运算结果的最高有效位向更高位的进位值,或从更高位的借位值。

OF标志

  • 在进行有符号数运算的时候,如果超过了机器所能表示的范围称为溢出。

adc指令

  • adc是带进位加法指令,它利用了CF位上记录的进位值。

指令格式:adc 操作对象1,操作对象2:
功能:操作对象1 = 操作对象1 + 操作对象2 + CF

sbb指令

  • sbb是带借位减法指令,它利用了CF位上记录的借位值。

指令格式:sbb 操作对象1,操作对象2:
功能:操作对象1 = 操作对象1 - 操作对象2 - CF


cmp指令

  • cmp是比较指令,cmp的功能相当于减法指令,只是不保存结果。cmp指令执行后,将对标志寄存器产生影响。

cmp指令格式:cmp 操作对象1,操作对象2:
功能:计算 操作对象1 - 操作对象2 但并不保存结果

DF标志和串传送指令

  • 方向标志位,在串处理指令中,控制每次操作后si、di的增减。
  • df=0–每次操作后si、di递增;
  • df=1–每次操作后si、di递减。

串传送指令:movsb
功能:1、((es)*16+(di)) = ((ds)*16+(si))
2、如果df=0则:(si)=(si)+1 (di) = (di)+1
3、如果df=0则:(si)=(si)-1 (di) = (di)-1

pushf 和 popf

  • pushf的功能是将标志寄存器的值压栈;popf的功能是从栈中弹出数据,送入标志寄存器中。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值