标志寄存器为16位寄存器,如右图2-6所示: 其中9位为8086的标志位,其他7位未用。标志位分为状态标志和控制标志,状态标志为指令执行后算逻部件的状态。6位状态标志是CF,PF,AF,ZF,SF和OF。 CF:进位标志(标志寄存器的D0位)。CF置1,表示执行一次加法运算时产生了进位,或执行一次减法运算时产生了借位。此外,循环指令也会影响这一标志。 PF:奇/偶标志(D2位)。如果运算结果的低8位中所含的1的个数为偶数,则PF置1,1的个数为奇数时PF为0。 AF:辅助标志(D4位)或半进位标志。当加法运算时第三位向第四位有进位,或者减法运算时第三位从第四位有借位,AF标志置1。DAA和DAS指令测试该标志位,作为在BCD码运算时是否进行十进制调整的依据。此外,微处理器或任何其它指令都不使用AF标志位。 ZF:零标志(D6位)。表示一个算术或逻辑运算的结果是否为零。若当前的运算结果为零,则ZF为1;当前运算结果不为零,则ZF为0。 SF:符号标志(D7位)。表示算术或逻辑运算结果的算术符号,它和运算结果的最高位相同。当数据用补码表示时,负数的最高位为1,所以符号标志指出了所执行运算结果的正负。 OF:溢出标志(D11位)。在有符号数进行加法或减法运算过程中产生溢出时,OF被置为1。指示运算结果超出了机器能够表示的范围。对于无符号操作,不考虑该标志。 控制标志指示CPU控制某种特定的功能,通常通过指令来设定与清除。3位控制标志分别为DF,IF,TF。 TF:跟踪标志或称单步标志(D8位)。如果TF设定为1,指示CPU按照单步方式执行指令。 IF:中断标志(D9位)。对可屏蔽中断的控制标志。如果IF为1,表示 CPU对可屏蔽中断的中断允许;为0,表示CPU不能接受可屏蔽中断请求。IF标志由STI(置IF为1)和CLI(清除IF标志)指令来控制。 DF:方向标志(D10位)。控制串操作指令执行过程中地址的增量或减量。如果DF为0,在串操作过程中,地址会不断增值;如果DF为1,则串操作过程中地址将不断减值。DF标志由STD(置位方向)和CLD(清除方向)指令控制。 上述这些指令标志一旦设置之后,便对后面的操作产生控制作用。 |