《汇编语言》 第十一章 标志寄存器

本文详细介绍了8086CPU的标志寄存器,包括ZF(零标志位)、PF(奇偶标志位)、SF(符号标志位)、CF(进位标志位)和OF(溢出标志位)的功能和应用场景,并讲解了adc和sbb指令的用法。此外,还提及了pushf和popf指令在保存和恢复标志寄存器值中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第11章 标志寄存器

CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理机,个数和结构都有可能不同)具有以下3种作用。

  1. 用来存储相关指令的某些执行结果;
  2. 用来为CPU执行相关指令提供行为依据;
  3. 用来控制CPU的相关工作方式。

这种特殊的寄存器,被称为标志寄存器。

8086CPU的标志寄存器有16位,其中存储的信息通常被称为程序状态字PSW

关于标志寄存器的各位如图所示,有很多位其实没有意义的。
图片图片

11.1 ZF标志

flag的第6位是ZF,零标志位(ZERO FLAG)。
其记录结果是否为零。比如

mov ax,1
sub ax,1

sub指令执行之后,其结果为1,那么此时寄存器中的ZF的执行结果就为1。

补充:在使用一条指令的时候,要注意这条指令的全部功能,其中包括,执行结果对标志寄存器的哪些标志位造成影响。
比如运算指令,存在运算结果的,对标志位有影响。
但如pop等传输指令,没有结果的,对标志位没有影响。

11.2 PF标志位

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

注意不是结果的奇偶,而是1个数的奇偶性,这个你要明确的!

比如:

mov al,1 0000 0001
mov al,2 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值