当前位置:首页 > 单片机 > 单片机
[导读] 对外部RAM单元只能使用寄存器间接寻址方式,与累加器A之间进行数据传送,外部RAM数据传送指令有4条。  前2条采用DPTR作间址寄存器,因DPTR为16位地址指针,所以这两条指令可寻址外部RAM的整个64KB空

外部RAM单元只能使用寄存器间接寻址方式,与累加器A之间进行数据传送,外部RAM数据传送指令有4条。


  前2条采用DPTR作间址寄存器,因DPTR为16位地址指针,所以这两条指令可寻址外部RAM的整个64KB空间,占用P0口和P2口作地址总线。后2条采用R0,R1作8位地址指针,寻址范围只限于外部RAM最低256个单元,只占用P0口。即此时P2口可作其他用途。外部RAM数据传送指令的助记符采用MOVX。以区别于内部RAM数据传送指令MOV,这样才能实现8051对内部RAM和外部RAM的独立编址。
  
  指令MOV A,@DPTR将地址指针DPTR指向的外部数据存储器单元中的数据送入累加器A中。该指令所占空间为1字节,执行时间为2周期,机器码为EO。
  
  假定指令运行前累加器A中内容为45H,DPH中为01H,DPL中为22H,外部数据存储器0122中为23H。下面我们看看指令的运行过程:
  
  指令运行后,累加器A中的内容变为23H,P的值的变为1
  
  指令MOV @DPTR,A将累加器A中数据送入地址指针DPTR指向的外部数据存储器单元中。该指令所占空间为1字节,执行时间为2周期,机器码为F0。
  
  假定指令运行前累加器A中内容为79H,DPH中为10H。DPL中为46H,外部数据存储器1046H中为15H。下面我们看看指令的运行过程:
  
  指令运行后,外部数据存储器1046H单元中的内容变为79H
  
  指令MOV A,@RO将地址指针R0指向的外部数据存储单元中的数据送入累加器A中。该指令所占空间为1字节,执行时间为2周期,机器码为E2
  
  假定指令运行前累加器A中内容为72H,R0中为59H。指令运行后,外部数据存储器59H中为14H,P的值变为0
  
  指令MOV A,@R1将地址指针R1指向的外部数据存储器单元中的数据送入累加器A中。该指令所占空间为1字节,执行时间为2周期,机器码为E3
  
  假定指令运行前累加器A中内容为63H,R1中为32H,外部数据存储器32H中为34H。下面我们看看指令的运行过程:
  
  指令运行后,累加器A中的内容变为34H,P的值变为1
  
  指令MOV @RO,A将累加器A中的数据送入地址指针R0指向外部数据存储器单元中。该指令所占空间为1字节,执行时间为2周期,机器码为 F2
  
  假定指令运行前累加器A中内容为61H,R0中为51H,外部数据存储器51H中为38H。下面我们看看指令的运行过程:
  
  指令运行后,外部数据存储器51H单元中的内容变为61H。
  
  指令MOV @R1,A将累加器A中的数据送入地址指针R1指向的外部数据存储器单元中。该指令所占空间为1字节,执行时间为2周期,机器码为 F3
  
  假定指令运行前累加器A中内容为83H,R1中为25H,外部数据存储器25H中为11H。下面我们看看指令的运行过程:
  
  指令运行后,外部数据存储器25H单元中的内容变为83H
  
  从上述指令我们还可以看出外部RAM单元只能与累加器A之间进行数据传送。
  
  例如要将外部RAM中的110H单元的数据传送到外部RAM的1231H单元,须执行以下指令:
  
  MOV DPTR,#1110H
  
  MOVX A,@DPTR
  
  将外部数据存储器1110H单元中的数据取回累加器A中
  
  MOV DPTR,!1231H
  
  MOVX @DPTR,A
  
  将累加器A中的数据送入外部数据存储器1231H单元中。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭