题目:设表格中有1024个数据项,每个数据为2个字节,表格总长度为2048个字节,现要求根据R2R3的内容从表格中找出对应的数据元素的值,并送回到R2R3中。(他上面说是利用DPH,DPL进行运算的方法进行查表)
程序如下:
MOV DPTR,#TAB
MOV A,R3
CLR C
RLC A
XCH A,R2
RLC A
XCH AR2
ADD A,DPL
MOV DPL,A;调整DPL,DPH
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
TAB: DW XXXXH;共1024个数据项
DW XXXXH
......
DW XXXXH
刚学单片机汇编语言,不知道为什么要用RLC A 我看有什么说 因为楼主的要求是要在两个寄存器之间移位
两者不能独立地移
所以需要一个C进位位过度 这是怎么过度的啊 谁能详细的说下这个程序啊
【3】第x项的数据起始地址应为 TAB+(2*x)这个是什么意思是啊,初学单片机不知道这是怎么读表的
追答这个与单片机无关诶。
由于表格在存储器当中通常是顺序存放的,8位宽存储器最小单元是字节,每个数据项又是双字节。根据表格索引号x,和表格的起始地址TAB,就可以得到x对应数据项的存放地址TAB+(x乘以2)。