引用 7 楼 lbing7 的回复:
ADD A,#(TAB1-LTB2) ;加上偏移量
MOVC A,@A+PC ;查第一字节
LTB2: XCH A,R3 ;单字节指令
ADD A,#(TAB1-LTB3) ;双字节指令
MOVC A,@A+PC ;查第二个字节,单字节指令
PC已经变了。。。
执行到第二个MOVC A,@A+PC ;查第二个字节,单字节指令的时候
PC已经比之前的PC加二了……
#(TAB1-LTB3)和
#(TAB1-LTB2)是什么地址呀???
ADD A,#(TAB1-LTB3) ;双字节指令
MOVC A,@A+PC ;不就是相当于((A)+(PC))->A,pc内容不就是#LTB3?而A的内容就是#(TAB1-LBT3)
ADD A,#(TAB1-LTB2) ;加上偏移量
MOVC A,@A+PC ;不就是相当于((A)+(PC))->A,pc内容不就是#LTB2?而A的内容就是#(TAB1-LBT2)
算下来结果不是应该是一样的吗????不应该需要A加上1吗???