下面的汇编语言有一行看不懂,求给位大侠帮忙看一下

[复制链接]
2337|5
 楼主| 小胖妞姜 发表于 2012-7-14 08:49 | 显示全部楼层 |阅读模式
下面程序中看不懂这一行  RLC   A
在一个一mcs-51为核心的温度控制器中,温度传感器输出的电压与温度为非线性关系,传感器输出的电压已由A/D转换为10位二进制数。根据测得的不同的温度下的电压值数据构成一个表,表中放温度值y,x为电压值数据。设测得的电压值x放入R2R3中,根据电压值x,查找对应的温度值y,仍放入R2R3中。 x和y均为双字节无符号数。程序如下
    LTB2:  MOV  DPTR,#TAB2
              MOV  A,R3
              CLR   C
              RLC   A
              MOV  R3,A
              XCH   A,R2
              RLC   A
              XCH   R2,A
              ADD   A,DPL
              MOV   DPL,A
              MOV   A,DPH
              ADDC  A,R2
              MOV    DPH,A
              CLR    A
              MOVC  A,@A+DPTR
              MOV   R2,A
              CLR    A
              INC   DPTR
              MOVC   A,@A+DPTR
              MOV    R3,A
              RET
      TAB2:DW...,...
 楼主| 小胖妞姜 发表于 2012-7-14 08:51 | 显示全部楼层
最后一行是  TAB:   DW...,...
受不了了 发表于 2012-7-14 10:06 | 显示全部楼层
这是RLC指令最常的用法,乘2。如果改成加可能会更直观些
 楼主| 小胖妞姜 发表于 2012-7-14 11:59 | 显示全部楼层
哦,多谢大侠!但是为什么要乘2呢,他们都是八位的呀 3# 受不了了
受不了了 发表于 2012-7-14 13:35 | 显示全部楼层
因为你那个TAB表是每两个字节为一组数据,即相邻的数据存放的地址相差2,类似的在查表跳转JMP @A+DPTR前也需要这样的处理
 楼主| 小胖妞姜 发表于 2012-7-14 15:41 | 显示全部楼层
哦,谢谢大侠! 5# 受不了了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

52

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部