请教:查表程序为什么要乘以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