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

MCS-51单片机传送类指令

点击数:7698 次   录入时间:03-04 12:02:19   整理:http://www.55dianzi.com   电脑-单片机-自动控制

  MCS-51单片机传送类指令的使用率最高,它们负责单片机内、外部以及单片机内部的数据处理。
  
  共有6类传送指令:
  
  ①一般传送指令及寻址方式
  
  这类指令的格式是:MOV<目的字节>,<源字节>
  
  如果我们想把“23H”这样一个十六进制的数字传送到寄存器A,就可以使用“立即寻址”方式,语句如下:

  “#”符号表示后面跟的是一个数字,而不是地址,因为在51指令当中内部存储器的地址是直接用十六进制的数字表示的,如果我们把语句写成:

  那么这句指令的含义是将内部存储器位于第23H那个字节中的值传至A,若23H中的值为OOH,则运行结果A=OOH,这被称为“直接寻址”。
  
  51指令规定RO和Rl寄存器为间接寻址寄存器,使用方法如下:
  
  MOVA.@RO;@表示取RO内的值所代表的RAM单元里的值,假设排号为23H的存储器中的值为OOH,RO中的值为23H,那么执行了上面的语句以后,A=OOH如果我们把指令写成MOVA,RO则运行以后A=23H51单片机也可以使用外部RAM,读写外部RAM的指令:

  其中DPTR是一个16位的数据地址指针,可以进行间接寻址,用于外部RAM的寻址。
  
  51单片机内的各类寄存器中值的传送,都可以通过MOV指令实现。
  
  在以上所介绍的语句中用到的“A”是51单片机的累加器,它是使用最频繁的寄存器,单片机绝大部分操作均需通过A。
  
  ②堆栈指令
  
  堆栈,就象是一个手枪的子弹夹,而我们准备存放的数据,每一个字节就好比是一发子弹,我们把数据一个一个地压入堆栈,等到取数据时,最后一个被存入的字节会被最先取出。
  
  往堆栈内存人数据的指令称为压栈指令,格式如下:

  则运行结果如下图所示:


  
  取出堆栈数据的指令称为弹出指令,格式如下:

  若我们接着上面执行以下语句:

  则运行结果:A=12H、23H=OOH、RO=11H,你可以看到运行以后,RO和A的值进行了交换。
  
  ③累加器传送指令

  这个指令的作用就是交换累加器A和存储单元中的内容,它有如下三种使用情况,我们先假设:内部RAM的20H单元内容为33H,累加器A的值为22H,R0的值为20H。执行指令:

  运行以后,A内的值变为20H,RO的值变为22H。
  
  若没有执行上面这条指令,而执行

  则运行以后,A的值变为33H,20H的值变为22H若没有执行上述指令,而执行

  那么运行以后,A的值为33H,20H的值为22H

  这个指令是将Ri间址单元内容的低4位与累加器内容的低4位互换,高4位不变。设RO的值为20H,RAM的20H单元内容为75H,A的值为36H,执行:XCHDA,@RO运行以后20H单元的值变为76H,A的值变为35H

  本指令实现累加器A的高、低4位内容互换。若A的值为36H,运行后A的值变为63H。

 




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