⑴ 关于单片机SUBB带借位减法指令!
是这样的。SUBB的每条指令的执行周期为一个周期数。它会对PSW中的标志位Cy、AC、OV产生影响。当减法有借位时,则Cy=1;否则,Cy=0.若低4位向高四位有借位时,AC=1;否则,AC=0;进行减法运算时,最高位与次高位不同时发生借位,则0V=1,否则,0V=0。不知能否帮到你。
⑵ 单片机的带借位减法
单片机中用到带借位的减法是为了进行多字节的减法运算,在进行高位字节运算时,要同时减去低位字节的借位,以得到正确的结果。
如果cy=1,SUBB
#09H,#05H
结果是03H
不是很正确噢
首先你的指令是非法指令,计算机、单片机中的立即数是不能做目的操作数的,目的操作数是要保存结果的,而立即数是不能保存结果的。
要想完成你的运算想法,应该写成如下形式:
MOV
A,#9
SETB
C
SUBB
A,#5
即执行后:
(A)-5-cy=9-5-1=3
结果为03H是正确的。
在进行最低字节的减法运算时,即刚开始做减法,还没有产生借位,应在运算前使cy=0
即
CLR
C
MOV
A,#DATA1
SUBB
A,#DATA2
执行时,
(A)-DATA2-cy=DATA1-DATA2-0
呵呵
满意
就选满意回答
⑶ 在80C51单片机里面,半进位标志位AC在加减运算里面是按照有符号数还是无符号数来设置标志位
一、加法指令
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。
⑷ 51单片机汇编语言中DEC指令问题:如果30H中为#00H,执行DEC 30H后,30H地址单元中是什么
30H中为#00H,执行DEC 30H后,30H地址单元中是什么?
-------
0000 0000减一后是1111 1111,也就是0FFH,也就是255。
DEC 30H 指令不影响标志位,所以Cy、OV、Ac和P,都不变。
只有运算功能的指令、比较指令影响标志位,INC/DEC 指令是不影响标志位的。
呵呵
⑸ 关于单片机带借位减法指令
51单片机中带借位减法指令为:SUBB,使用该指令时一定要首先处理借位Cy,不然容易出错,得出与理想不一样的结果。比如:
MOV A,R2
SUBB A,R3
以上指令运行后,将的出不确定的结果,正确的处理方法为:
CLR C
MOV A,R2
SUBB A,R3
⑹ 单片机的带借位减法
单片机中用到带借位的减法是为了进行多字节的减法运算,在进行高位字节运算时,要同时减去低位字节的借位,以得到正确的结果。x0dx0a如果cy=1,SUBB #09H,#05H 结果是03H 不是很正确噢x0dx0a首先你的指令是非法指令,计算机、单片机中的立即数是不能做目的操作数的,目的操作数是要保存结果的,而立即数是不能保存结果的。x0dx0a x0dx0a要想完成你的运算想法,应该写成如下形式:x0dx0a MOV A,#9x0dx0a SETB Cx0dx0a SUBB A,#5x0dx0a 即执行后: (A)-5-cy=9-5-1=3x0dx0a结果为03H是正确的。x0dx0a x0dx0a在进行最低字节的减法运算时,即刚开始做减法,还没有产生借位,应在运算前使cy=0x0dx0a即 CLR Cx0dx0a MOV A,#DATA1x0dx0a SUBB A,#DATA2x0dx0a 执行时, (A)-DATA2-cy=DATA1-DATA2-0x0dx0a x0dx0a 呵呵 满意 就选满意回答