首页 理论教育 单片机算术运算指令实用技巧

单片机算术运算指令实用技巧

时间:2023-10-22 理论教育 版权反馈
【摘要】:算术运算指令的两个参与运算的操作数,一个存放在累加器a中;一个存放在r0~r7或@ri中,或是#data(立即数)。算术运算指令可以分为加法指令、带进位的加法指令、带借位的减法指令、十进制调整指令、加1指令、减1指令、乘除指令。除法运算中,若除数为0,则ov标志位置1,否则清0。

单片机算术运算指令实用技巧

算术运算指令的两个参与运算的操作数,一个存放在累加器a中(此操作数也为目的操作数);一个存放在r0~r7或@ri(片内ram)中,或是#data(立即数)。

算术运算指令可以分为加法指令、带进位的加法指令、带借位的减法指令、十进制调整指令、加1指令、减1指令、乘除指令。

1.加法指令(4条)

指令格式:978-7-111-46285-9-Chapter03-28.jpg

其中,<src>包括rn、@ri、direct、#data。

对标志位的影响:add对psw中的所有标志位均产生影响。

2.带进位的加法指令(4条)

指令格式:978-7-111-46285-9-Chapter03-29.jpg

其中,<src>包括rn、@ri、direct、#data。

对标志位的影响:addc对psw中的所有标志位均产生影响。

3.带借位的减法指令(4条)

指令格式:978-7-111-46285-9-Chapter03-30.jpg

其中,<src>包括rn、@ri、direct、#data。

对标志位的影响:subb对psw中的所有标志位均产生影响。

注意:mcs-51指令系统中没有不带借位的减法指令,欲实现不带借位的减法计算,应预先置cy=0(利用“clr c”指令),然后利用带借位的减法指令subb实现计算。

4.十进制调整指令(1条)

功能:跟在加法指令add或addc后面,对运算结果的十进制数进行bcd码修正,将它调整为压缩的bcd码数,以完成十进制加法运算功能。(www.xing528.com)

特点:十进制调整指令也称为bcd码修正指令,这是一条专用指令。两个压缩的bcd码按二进制数相加后必须经本指令调整才能得到压缩的bcd码的和。源操作数只能在累加器a中,结果存入a中。

指令格式:da a

注意:十进制调整指令不能对减法指令进行修正。bcd码减法必须采用bcd补码运算法则,变减法为补码加法(被减数+减数的补码,减数的补码=9ah-减数)。然后对其进行十进制调整来实现。

5.加1指令(5条)

功能:加1指令又称为增量指令,其功能是使操作数所指定的单元的内容加1。指令格式:978-7-111-46285-9-Chapter03-31.jpg

其中,<dest>既是源操作数又是目的操作数(即只有一个操作数),包括a、rn、direct、@ri、dptr。

对标志位的影响:除对累加器a操作影响p标志位外,其他操作均不影响psw的各标志位。

6.减1指令(4条)

功能:减1指令又称为减量指令,其功能是使操作数所指定的单元的内容减1。指令格式:978-7-111-46285-9-Chapter03-32.jpg

其中,<dest>既是源操作数又是目的操作数(即只有一个操作数),包括a、rn、direct、@ri。

对标志位的影响:同加1指令。

7.乘除指令(2条)

功能:实现乘法或除法操作。

特点:乘除指令在mcs-51指令系统中执行时间最长,均为四周期指令。

指令格式:978-7-111-46285-9-Chapter03-33.jpg

对标志位的影响:乘除指令影响psw中的cy、ov、p标志位。其中,cy位总是被清0,p是由累加器a中1的个数的奇偶性决定的。乘法运算中,若乘积大于ffh,则ov标志位置1,否则清0。除法运算中,若除数为0,则ov标志位置1,否则清0。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈