PSW是按位操作的。可以通过转移指令来判断标志位的变化 从而实现程序中的分支结构或者循环结构 PSW中各标志位含义如下: ①状态标志:6个 CF—进位标志位,实现加法(或减法)时,当最高位出现进 位(或借位),CF位自动置1,反之置0。 PF—奇偶标志位,当运算结果的低8位中的个数为偶数时 则PF位自动置1,反之为0(和单片机相反) AF—半进位标志位,实现加法(或减法)时,当低四位向高 四位有进位(或借位),A位自动置1。通常用于对BCD算术运 算结果的调整。 例如:11011000+10101110=110000110其中AF=1,CF=1 ZF—零标志位,运算结果为0时,ZF位自动置1,否则清0 SF—符号标志位,当运算结果的最高位为1,SF自动位置1 否则清0。即与运算结果的最高位相同
PSW是按位操作的。可以通过转移指令来判断标志位的变化, 从而实现程序中的分支结构或者循环结构。 PSW中各标志位含义如下: ① 状态标志:6个 CF—进位标志位,实现加法(或减法)时,当最高位出现进 位(或借位) ,CF位自动置1,反之置0。 PF—奇偶标志位,当运算结果的低8位中l的个数为偶数时, 则PF位自动置1,反之为0( 和单片机相反)。 AF—半进位标志位,实现加法(或减法)时,当低四位向高 四位有进位(或借位), AF位自动置1。通常用于对BCD算术运 算结果的调整。 例如:1101 1000+1010 1110=1 1000 0110其中AF=1,CF=1 ZF—零标志位,运算结果为0时, ZF位自动置1,否则清0。 SF—符号标志位,当运算结果的最高位为1, SF自动位置1, 否则清0。即与运算结果的最高位相同
OF溢出标志位,OF溢出的判断方法如下 今加法运算: 若两个加数的最高位为0,而和的最高位为1,则产生溢出; 若两个加数的最高位为1,而和的最高位为0,则产生溢出 两个加数的最高位不相同时,不可能产生溢出 令减法运算: 若被减数的最高位为0,减数的最高位为1,而差的最高位为1 则产生溢出; 若被减数的最高位为1,减数的最高位为0,而差的最高位为0 则产生溢出; 被减数及减数的最高位相同时,按两数的大小判断溢出。 如果所进行的运算是带符号数的运算,则溢出标志恰好能够 反映运算结果是否超出了8位或16位带符号数所能表达的范围 即字节运算大于十127或小于-128时,字运算大于十32767或小 于-32768时,该位置1,反之为0
OF—溢出标志位,OF溢出的判断方法如下: ❖加法运算: 若两个加数的最高位为0,而和的最高位为1,则产生溢出; 若两个加数的最高位为1,而和的最高位为0,则产生溢出; 两个加数的最高位不相同时,不可能产生溢出。 ❖减法运算: 若被减数的最高位为0,减数的最高位为1,而差的最高位为1, 则产生溢出; 若被减数的最高位为1,减数的最高位为0,而差的最高位为0, 则产生溢出; 被减数及减数的最高位相同时,按两数的大小判断溢出。 如果所进行的运算是带符号数的运算,则溢出标志恰好能够 反映运算结果是否超出了8位或16位带符号数所能表达的范围, 即字节运算大于十127或小于-128时,字运算大于十32767或小 于-32768时,该位置1,反之为0
例如: 0101010000111001 0100010101101010 100110011010001 CF=0、AF=1、PF=1、ZF=0、SF=1、OF=1(两正数相加结果为负) 一般来讲,不是每次运算后所有的标志都改变,只是在某些操作之后,才 对其中某个标志进行检查。 ②控制标志:3个 TF—陷阱标志位(单步标志位、跟踪标志)。当Ⅳ位置1时,将 使8086/8088进入单步工作方式,通常用于程序的调试。 IF—中断允许标志位,若I位置1,则处理器可以响应可屏蔽 中断,否则就不能响应可屏蔽中断。 DF—方向标志位,若D位置1,则串操作指令的地址修改为自 动减量方向,反之,为自动增量方向
例如: 0101 0100 0011 1001 + 0100 0101 0110 1010 1001 1001 1010 0011 CF=0、AF=1、PF=1、ZF=0、SF=1、OF=1(两正数相加结果为负) 一般来讲,不是每次运算后所有的标志都改变,只是在某些操作之后,才 对其中某个标志进行检查。 ② 控制标志:3个 TF—陷阱标志位(单步标志位、跟踪标志)。当TF位置1时,将 使8086/8088进入单步工作方式,通常用于程序的调试。 IF—中断允许标志位,若IF位置1,则处理器可以响应可屏蔽 中断,否则就不能响应可屏蔽中断。 DF—方向标志位,若DF位置1,则串操作指令的地址修改为自 动减量方向,反之,为自动增量方向
(1)CF标志位的实用价值: a.如果用户需要进行多字节无符号数的算术运算,那么CF标志就是低位字节 和高位字节间进位和借位的桥梁。 8086/8088C門U提供的指令,能够直接处理的最大无符号数就是一个字(16 位),如果超岀这个范围,就必须使用多字节来表示要计算的数据。 这个原理不光只在80868088芯片中有,任何芯片,无论它处理的数据范围多 么大,它总是一个有限的单位,如果超出这个单位,就必须使用标志位作为运算 的中介 b.在执行移位指令时,CF标志用于存放移出位的值。 例如对01010011实行逻辑右移,即把这个字节中的每一位向右移动一位,左 边空出的那一位置为0,以前最右边那一位就被移出字节范围外了,那么这一位 就是移出位,移出位都是保存在CF中的。这个例子中,移位完成后,CF应该 等于1 C.CF标志位还能够为一些条件转移指令提供判别依据 例如JC指令,它就是先判别CF标志位的值,如果CF=1,就跳转到指令中给出 地址继续执行程序,如果CF=0,就不作跳转,CPU会顺序执行下一条指令。也 就是说,在程序中,可以根据CF标志取值的不同来实现程序的分支或循环结构
(1)CF标志位的实用价值: a. 如果用户需要进行多字节无符号数的算术运算,那么 CF标志就是低位字节 和高位字节间进位和借位的桥梁。 8086/8088CPU提供的指令,能够直接处理的最大无符号数就是一个字(16 位),如果超出这个范围,就必须使用多字节来表示要计算的数据。 这个原理不光只在8086/8088芯片中有,任何芯片,无论它处理的数据范围多 么大,它总是一个有限的单位,如果超出这个单位,就必须使用标志位作为运算 的中介。 b. 在执行移位指令时, CF标志用于存放移出位的值。 例如对01010011实行逻辑右移,即把这个字节中的每一位向右移动一位,左 边空出的那一位置为0,以前最右边那一位就被移出字节范围外了,那么这一位 就是移出位,移出位都是保存在CF中的。这个例子中,移位完成后, CF应该 等于1。 c. CF标志位还能够为一些条件转移指令提供判别依据。 例如JC指令,它就是先判别CF标志位的值,如果CF=1,就跳转到指令中给出 地址继续执行程序,如果CF=0,就不作跳转,CPU会顺序执行下一条指令。也 就是说,在程序中,可以根据CF标志取值的不同来实现程序的分支或循环结构
(2)奇偶标志位PF( Parity Flag) 如果CPU所执行的指令要影响PF标志,并且该指令得到的数据结果低8位中 含有偶数个“1时,PF=1;含有奇数个“1”,PF=0 注意无论指令的操作数有多么长,只有低8位数据中1的个数能够影响到PF标 志的取值。 PF标志位的实用价值: 这个标志位对于校验操作是很有用的。这里以对ASC码的校验来说明它的应 用,ASC码占用一个字节,但是只有低7位是真正的码值,最高位是校验位。如 果使用奇校验,那么必须保证编码字节中始终保持有奇数个“1,这种编码格式 可以通过调整最高位的取值来实现,如果ASC码中已经有奇数个“1”,那么第7 位应取值为0;如果ASC码中仅有偶数个“1”,那么第7位应取值为1,使“1的 个数变为奇数 现在,试设想计算机通过网络接收ASC码,如何判断收到的编码是否正确呢? 那就需要判断收到的字节中是否为奇数个“1,如果为偶数个“1”,那么收到的 编码一定是错误的,必须要求重新发送 在判断“1”的个数时,F标志的作用就体现出来了。通过PF标志也可以使用 条件转移指令来实现程序中的分支或循环结构。 通过奇偶校验码能够识别大部分经常岀现的错码,但是并不能完全避免错码。 关于编码机制可以参见计算机组成原理中的相关内容,这里不作详细的介绍
(2)奇偶标志位PF(Parity Flag): 如果CPU所执行的指令要影响PF标志,并且该指令得到的数据结果低8位中 含有偶数个“1”时,PF=1;含有奇数个“1”,PF=0。 注意无论指令的操作数有多么长,只有低8位数据中1的个数能够影响到PF标 志的取值。 PF标志位的实用价值: 这个标志位对于校验操作是很有用的。这里以对ASCII码的校验来说明它的应 用,ASCII码占用一个字节,但是只有低7位是真正的码值,最高位是校验位。如 果使用奇校验,那么必须保证编码字节中始终保持有奇数个“1”,这种编码格式 可以通过调整最高位的取值来实现,如果ASCII码中已经有奇数个“1”,那么第7 位应取值为0;如果ASCII码中仅有偶数个“1”,那么第7位应取值为1,使“1”的 个数变为奇数。 现在,试设想计算机通过网络接收ASCII码,如何判断收到的编码是否正确呢? 那就需要判断收到的字节中是否为奇数个“1”,如果为偶数个“1”,那么收到的 编码一定是错误的,必须要求重新发送。 在判断“1”的个数时,PF标志的作用就体现出来了。通过PF标志也可以使用 条件转移指令来实现程序中的分支或循环结构。 通过奇偶校验码能够识别大部分经常出现的错码,但是并不能完全避免错码。 关于编码机制可以参见计算机组成原理中的相关内容,这里不作详细的介绍