MOVC A,@A+DPTR;偏移量的计算只要将INC A;加一指令,将累加器A的数据加一就可改变(因为查表指令是查数据,数据是单字节的,所以加一即可)。例如:TAB:DB 30H,55H,83H;TAB是表头,DB是列表的意思。如果上述中累加器@A=00H,则查表指令后,A就等于30H。如累加器@A等于02H,查表指令后,A等于83H。就是说改变@A的偏移量就可查出对应的数值。@A=00H时查出的数据是30H,@A=01H时查出的数据是55H,@A=02H时查出的是83H,其他的我想你应该会推算了吧
单片机中地址偏移值,准确来说应叫做:偏移量用rel表示,是一个8位的带符号数(即补码);
表示数的范围为 -128~127;
比如:基址是0x1000,而0x1002就相对0x1000偏移了2;
MOVC A,@A+DPTR;偏移量的计算只要将INC A;加一指令,将累加器A的数据加一就可改变。
跳转指令中直接使用地址名就行,不用计算偏移量,比如
AJMP HERE
...
HERE:MOV A,#0
...