打印

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

[复制链接]
1531|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# 受不了了

使用特权

评论回复
5
受不了了| | 2012-7-14 13:35 | 只看该作者
因为你那个TAB表是每两个字节为一组数据,即相邻的数据存放的地址相差2,类似的在查表跳转JMP @A+DPTR前也需要这样的处理

使用特权

评论回复
6
小胖妞姜|  楼主 | 2012-7-14 15:41 | 只看该作者
哦,谢谢大侠! 5# 受不了了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

52

帖子

1

粉丝