《汇编语言》课件 王爽 著-清华大学出版社制作工具: Microsoft PowerPoint2003第 11 章 标志寄存器 11.1 ZF 标志 11.2 PF 标志 11.3 SF 标志 11.4 CF 标志 11.5 OF 标志 11.6 adc 指令 11.7 sbb 指令 11.8 cmp 指令 11.9 检测比较结果的条件转移指令 11.10 DF 标志和串传送指令 11.11 pushf 和 popf 11.12 标志寄存器在 Debug 中的表示引言 8086CPU 的标志寄存器有 16 位,其中存储的信息通常被称为程序状态字( PSW )。 我们己经使用过 8086CPU 的 ax 、 bx 、cx 、 dx 、 si 、 di 、 bp 、 sp 、 ip 、 cs、 ss 、 ds 、 es 等 13 个寄存器了。 本章中的标志寄存器(以下简称为 flag )是我们要学习的最后一个寄存器。引言 flag 和其他寄存器不一样,其他寄存器是用来存放数据的,都是整个寄存器具有一个含义。 而 flag 寄存器是按位起作用的,也就是说,它的每一位都有专门的含义,记录特定的信息。引言 8086CPU 的 flag 寄存器的结构: flag 的1 、 3 、 5 、 12 、 13 、 14 、 15 位在8086CPU 中没有使用,不具有任何含义。而 0 、 2 、 4 、 6 、 7 、 8 、 9 、 10 、11 位都具有特殊的含义。引言 在这一章中,我们学习标志寄存器中的CF 、 PF 、 ZF 、 SF 、 OF 、 DF 标志位,和一些与其相关的典型指令。11.1 ZF 标志 flag 的第 6 位是 ZF ,零标志位。 它记录相关指令执行后, 结果为 0 , ZF = 1 结果不为 0 , ZF = 0 示例11.1 ZF 标志 比如: mov ax,1 sub ax,1 指令执行后,结果为 0 ,则 ZF = 1 。 mov ax,2 sub ax,1 指令执行后,结果为 1 ,则 ZF = 0 。11.1 ZF 标志 对于 ZF 的值,我们可以这样来看, ZF标记相关指令的计算结果是否为 0 ,如果为 0 ,则在 ZF 要记录下“是 0” 这样的肯定信息。 在计算机中 1 表示逻辑真,表示肯定,所以当结果为 0 的时候 ZF=1 ,表示“结果是 0 ” 。如果结果不为 0 ,则 ZF 要记录下“不是0” 这样的否定信息。 在计算机中 0 表示逻辑假,表示否定,所以当结果不为 0 的时候 ZF=0 ,表示“结果不是 0” 。 示例11.1 ZF 标志 示例 指令: mov ax,1 and ax,0 执行后,结果为...