图中例3画关于波浪线的正确画法式子是怎么计算的?我并没有发现P(Hi)是怎么来的?

CY AC OV P指的是PSW(FLAG寄存器)里的某一位,51里叫PSW,Intel汇编叫FLAG寄存器。CY指的是进位标志,当最高位有进位/借位(减法)时,CY=1,否则CY=0AC指的是辅助进位,它的用途是当有半字节发生进位/借位的时候,置1,半字节指的是从低到高的第4位(D3位)OV指的是溢出标志,指的是有符号运算发生溢出的时候,OV=1,比如127+1,从无符号的角度上理解,没有进位,但从有符号的角度,已经发生溢出。(有符号范围-128~+127)P指的是奇偶校验位,寄存器里的1的总数是奇数,值就是1,否则,就是0A
= 53H = 01010011
R0 = FCH = 11111100
ADD A, R0 => 01010011 + 11111100 = 1 0100 1111计算结果已经超过了255这个范围,发生进位,所以CY=1低4位是0011+1100=1111,没有发生进位,所以AC=0因为A是正数,R0是负数,有符号正数和负数相加永远不会溢出,所以OV=0计算结果是 0100 1111(最高位进位被丢弃),1的个数是5个,所以P=1PSW的含义建议百度,关键字:51单片机 PSW_百度搜索资料很多。你所说的:Cy=1,Ac,=1,OV =0,P=1这些数值,是四个典型标志位的状态。它们属于MCS51系列单片机的标志寄存器PSW。标志寄存器PSW是一个八位寄存器,内容(或者说各位的状态)和累加器ACC的运算相关。用来表征l累加器ACC运算结果的一些特征,比如说有无进位、借位等。其每位的具体含意如下所示。PSW各位定义: psw.7
psw.6
psw.5
psw.4
psw.3
psw.2
psw.1
psw.0
CY
AC
FO
RS1
RS0
OV

P其中,F0、RS1\RS0可以由用户自己编程设定,其他位的状态是根据程序执行结果,由硬件自动设置的。对我们一般用户来讲,最关心的是以下四位:1.进位标志CY(PSW.7)。它表示运算结果是否有进位(或借位)。如果结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0。2.辅助进位标志AC(PSW.6)。又称半进位标志,它表示了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则AC为1状态,否则为0。它主要用于二进制的十进制运算的算法调整(BCD码调整),平时我们可不必关注。3.溢出标志位OV(PSW.2)。反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。具体来讲:
加减运算中,若运算超出了累加器A所能表示的符号数的有效范围(-128~127),则自动置1,表示产生了溢出,说明运算结果是错误的。否则为0。
乘法运算中,Ov=1表示乘积超过255,即乘积分别在A和B中;否则为0,表示乘积只在A中。
除法运算中,Ov=1表示除数为0。4.奇偶标志P(PSW.0)。反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1,则P为0,否则,P=1。PSW:由于PSW寄存器存放程序执行中的状态,所以又叫程序状态字。另外4个位的含义:1.用户标志位F0(PSW.5)。我们用户可以通过编程,对这个标志位置位或复位,使用非常灵活,常用作异步通讯时候数据收发标志或准备好的标志。2.寄存器组选择位RS1&RS0(PSW.4 & PSW.3)。 选择CPU当前使用的工作寄存器组,单片机中共有四组工作寄存器,每次上电或复位后RS被置0,默认是第一组的寄存器。用户可以编程选择当前工作寄存器,达到保护某一区R0~R7中数据的目的。

我要回帖

更多关于 波段高点自动画线公式 的文章