导航:首页 > 操作系统 > 单片机减法指令常见问题

单片机减法指令常见问题

发布时间:2023-07-27 22:45:08

⑴ 关于单片机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 呵呵 满意 就选满意回答

阅读全文

与单片机减法指令常见问题相关的资料

热点内容
android通讯录增删改查 浏览:725
车贷解压过户可以同时进行吗 浏览:915
java面向对象编程题目 浏览:876
二次元压缩包 浏览:698
stc仿真器编程器 浏览:155
服务器销售怎么做好 浏览:87
什么是com编程 浏览:848
算法工程师最新资讯 浏览:608
邮政银行卡怎么在app签约绑定 浏览:49
压缩卷一直转 浏览:976
初一编程小程序怎么做 浏览:826
bt软件文件夹名称 浏览:157
unix创建命令 浏览:622
devc是多少位的编译器 浏览:980
怎么样能快点升安卓系统 浏览:976
奇迹mu用什么服务器 浏览:605
如何让软件在多个安卓系统上运行 浏览:575
java判断半角 浏览:882
java判断正负 浏览:322
刷头条程序员的日常 浏览:104