您的位置:网站首页 > 电器维修资料网 > 正文 >
MCS-51单片机算术运算类指令
来源: 日期:2013-11-18 21:55:07 人气:标签:
此指令运行后的结果放在a中,下面我们举例说明:
假设a的值为c3h,ro的值为aah,则运行
执行结果:a的值变为6dh,标志位cy被置为1,因为 高位有进位。也可以执行:
运行结果同上。大家注意立即数“aah”的前面有个“0”,这是因为51指令规定:立即数的高位不是数字的话,就必须在前面加一个“0”。
加法指令当中还有一条“加一指令”:
此指令将指定存储单元的内容加一,计算结果仍存于原单元,并且不影响任命标志位。前面说过的寻址方式都适用于它。在循环程序中常常会用到这个加一指令。
此指令是从累加器a中减去进位标志cy和指定的存储单元的值,结果存于a中,若a的第7位有借位,则cy置为l,若第3位向第4位借1,则辅助标志ac置为1,否则清0;若第6位和第7位中只有一位借位,则溢出标志位0v置为1,否则复位0。溢出标志ov常用于带符号的整数减法,表示因溢出而产生的运算错误。(注意:每个字节是8位,左边第一个是第0位,右边第一个是第7位)设累加器a的值为c9h,r2的值为54h,cy为1,运行下面这条指令:
运行结果如下图,这时a的值为74h,cy的值为0,ac的值为0,0v的值为l。如果读者一时弄不清楚标志位的作用,可以先不去管它们,在程序里面尽量不使用就行了。
减法指令中也有一条“减一指令”,用法同加法的加一指令
③乘法指令
本指令是将累加器a和专用寄存器b中两个8位无符号数相乘,得16位乘积,积的低8位放在a中,高8位放在b中,只要b的内容不为o,溢出标志0v就置为1,b的内容为0则0v清0。进位标志始终为0。
④除法指令
本指令将累加器a中8位无符号整数除以b寄存器中8位无符号整数,所除结果:整数商部分存于a中,整数余数部分存于b中,cy和0v清0。看下面的例子:
设a的值为64h(十进制是100),b的值为03h,执行:
结果:a的值为21h(十进制是33),b的值为oih,0v=0,cy=0
【看看这篇文章在百度的收录情况】
相关文章
- 上一篇: MCS-51单片机传送类指令
- 下一篇: 菜鸟学习硬件技术问答汇编