关于单片机两种查表指令偏移量的算法 偏移量怎么计算啊??帮帮忙

如题所述

MOVC A,@A+DPTR指令,DPTR应该指向表首地址,偏移量为指令执行前A值。
MOVC A,@A+PC指令,PC内容为当前指令地址+1,所以偏移量应该是该指令到数据表首地址间的指令字节数。追问

MOV R0,#7EH 7E是怎么算出来的??
MOV R2,#01H
MOV A,R2
MOV DPTR,#TAB
LP0: MOV P1,A
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
ACALL DIMS

追答

MOVC A,@A+DPTR,A值为表首到要查找的数据间的字节数。记住,要从0开始数

追问

“要查询的数据”是指从表头TAB开始到整个表的最后一个数据单元的长度吗?
还是从MOVC这条指令到表头之间的指令字节数呢??

追答

指从表头TAB开始到表中某一个你要找的数。无语。。。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-02
找到每条指令的字节数
把要跳过的所有指令的字节数都加起来就是偏移量追问

那不是很麻烦,那如果是跳转指令和延时子程序中的djnz是算一次,还是算循环的那么多次数呢

第2个回答  2011-05-02
df dsf sdf ds ds
相似回答