单片机程序状态字PSW的OV位到底是怎么判断溢出的?

2025-04-08 17:24:51
推荐回答(1个)
回答1:

D2位OV是判断溢出的标志。

在单片机中状态寄存器PSW是一个用了比较多的寄存器,除了D1位空着外,其它的7位都要使用,其中D7位Cy,是进(借)位,当做加法或减法时,进位标志和借位标志都是由它来表示.

当位和位之间相互传送时也不能少了它,必须要经它中转.D6位Ac位是辅助进位标志,当做加法或减法时由第四位向第五位进位或借位时,它会被置1.它也用于十进制调整(DA A).

D5位是用户标志位,当程序因某种原因"跑偏"后,用户可以用它来标志程序该从哪儿开始执行.不重复已经执行过的指令.

D4、D3位合在一块儿,指明工作寄存器的组别,这主要用于比较复杂一些的程序,R0组寄存器不够用的情况下用到R1、R2、R3组的寄存器时要用到这二位。

怎么判断正负吧。就是C位。考虑溢出-128-1单片机的计算方法为先把1和128用补码表示为11111111b和10000000b。相加得,01111111b=127正数C=0溢出0V=1,-128<1;127-(-1)表示为01111111b加00000001b=10000000b负数C=1溢出0V=1,127>-1;我也是刚看到。原来OV就是为有符号设计的当数寄存器值小于-127或大于128时候置位。