导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请教:查表程序为什么要乘以2[奔奔鸟]

 *第39068篇: 请教:查表程序为什么要乘以2

  
楼 主:奔奔鸟 2006年4月4日20:29
 请教:查表程序为什么要乘以2
各位大侠:晚上好!
     我在书上看到一个例题,有一点不明白,在下面的程序中为什么要乘以2(即涂蓝的行RL    A)
题目:在一个控制装置中,根据最后所得的数字(0,1,2……,9)输出相应的控制字,每个控制字由两个字节组成,其对应关系如下:
0 75FEH
1 F087H
2 FE09H
3 559EH
4 5597H
5 789AH
6 A430H
7 1110H
8 8754H
9 FFEEH
下面是查表子程序,根据给出的数字(存放在20H单元中)查表所得的结果存放在22H和23H单元中.
 MOV DPTR,#TABEL ;表首地址送DPTR
 MOV A,20H   ;查表数字存放在20H单元
 [size=3]RL A   ;(A)*2送A
 MOV 20H,A   ;保存A的内容
 MOVC A,@A+DPTR  ;查表结果存入22H单元
 MOV 22H,A   ;
 INC DPTR   ;取该栏的下一个单元结果
 MOV A,20H   ;
 MOVC A,@A+DPTR  ;低位结果存入23H单元
 MOV 23H,A   ;
 RET
TABEL: DB 75H
 DB  0FEH
 DB  0F0H
 DB  87H
 DB  0FEH
 DB  09H
 DB  55H
DB  9EH
DB  55H  
DB  97H
DB  78H
DB  9AH
DB  0A4H
DB  30H
DB  11H
DB  10H
DB  87H
DB  54H
DB  0FFH
DB  0EEH
  
2楼:Eguchi 2006年4月5日01:27
 看过两天书
牛,双字,占四个字节空间,20,21,22,23,下一个数据不是24么,不乘以2乘什么。
  
3楼:奔奔鸟 2006年4月5日18:07
 谢谢指点
谢谢指点
  
4楼:8280252 2006年4月5日21:29
 886
我认为:
A是单字节数而表中的数据是双字节的
所以就乘二了
不知道对不对
  
5楼:career5 2006年4月6日09:57
 我说一下
A是单字节数而表中的数据是双字节的
所以就乘二了 我同意
有点像数组。a[i]=a[0]+i*一个记录所占的单元数 此题目是双字,所以*2

>>>>>>对该主题发表你的看法

本主题贴数5,分页: [第1页]


[上一篇主题]:需要集成电路(ASIC)方面知识的朋友请进来

[下一篇主题]:modibus通讯时,前面的SLAVE ADDRESS要以标志位接收吗?后面数据就按一般数