一、加法指令
1、不带进位加法指令
工作寄存器、内部RAM单元内容或立即数的8位无符号二进制数和累加器A中数相加,所得和存放于累加器A中,当和的第3、7位有进位时,分别将AC,CY标志位置1;否则为0。 上述指令的执行将影响标志位AC、CY、OV、P。
对于无符号数,进位标志位CY=1,表示溢出;CY=0表示无溢出。带符号数运算的溢出取决于第6、7位中有一位产生进位,而另一位不产生进位,溢出标志位OV置“1”否则被清“0”。OV=1表示两个正数相加,和变为负数,或两个负数相加,和变为正数的错误结果。
2、带进位加法指令
将累加器A内容加当前CY标志位内容,再加无符号单字节的数,和存于累加器A中。当运算结果第3、7位产生进位溢出时,则分别置位AC、CY和OV标志位。本指令执行将影响标志位AC、CY、OV、P。
二、减法指令
1、带借位减法指令
带借位减法指令SUBB,从累加器A中减去进位标志位CY和指定的变量,结果在累加器A中,若第七位有借位,则置位位CY,否则CY清0。若第3位有错位,则置位辅助进位标志AC,否则清0 AC。若第7和第6位中有一位需借位,而另一位不借位,则置位溢出标志OV。溢出位OV用于带符号的整数减法,它表示(OV=1)一个正数减负数结果为负数;或一个负数减正数结果为正数的错误结果。
三、乘法指令
本指令将累加器A和寄存器B中二个8位无符号整数进行相乘,16位乘积的低8位存于A中,高8位存于B中,如果乘积大于255(0FFH),即B的内容不为0时,则置位溢出标志位OV,否则清“0”OV。进位标志位CY总是清“0”。
四、除法指令
本指令将累加器A中8位无符号整数除以B寄存器中8位无符号整数,所得结果商的整数部分存于A中,整数作数部分存于寄存器B中。清“0”CY和OV标志位。当除数(B中内容)为00H时,则执行结果将为不定值,即执行结果送往A和B中的为不定值,且置位溢出标志位OV。在任何情况下,均清“0”CY。
有、无符号数,是人类对数字的定义和理解。
在计算机里面,参加运算的,都是普通的二进制数。
八位数,分别称为 D7 D6 D5 D4 D3 D2 D1 D0。
加法运算时:
AC,当 D3 位相加,有进位则 AC=1。
CY,当 D7 位相加,有进位则 CY=1。
OV,当 D7、D6 的进位不同,则 OV=1。
P,当 ACC 中的 1 的个数为奇数,则 P=1。
减法、乘、除法运算,就不细说了。
都是很简单的。
单片机给出的这些标准位,供编程人参考。
编程人,必须自己深入理解《有、无符号数》的运算特点,
根据自己用的《有、无符号数》,再进行后续处理。