您当前的位置:五五电子网电子知识电子学习基础知识电脑-单片机-自动控制MCS-51单片机算术运算类指令 正文
MCS-51单片机算术运算类指令

MCS-51单片机算术运算类指令

点击数:7526 次   录入时间:03-04 11:56:25   整理:http://www.55dianzi.com   电脑-单片机-自动控制

  51单片机的算术运算指令都必须在累加器A中进行,另外还有几个标志位会随着运算结果的不同而变化。它们是Cy进位标志、Ac辅助进位标志(常用于BCD码)、溢出标志0V、奇偶校验标志P、零标志Z。
  
  ①加法指令

  此指令运行后的结果放在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




本文关键字:单片机  电脑-单片机-自动控制电子学习 - 基础知识 - 电脑-单片机-自动控制