单片机散转程序看不懂呀求大神!!
发布网友
发布时间:2022-04-26 19:09
我来回答
共2个回答
热心网友
时间:2023-10-22 20:37
只要说明如下问题即可:
1、LJMP指令占三个字节,故跳转公式为:(J_TAB)+3*(R3R2)
2、(R3R2)*3 = (R3*3 << 8)+ R2*3 + 进位
MOV A,R3
MOV B,#3
MUL AB
ADD A,DPH
XCH A,DPH
得到: R3*3<<8
MOV A,R2
MOV B,#3
MUL AB
XCH A,B
ADD A,DPH
XCH A,DPH
得到: 进位
MOV A,B
到底: R2*3
3、LJMP @A+DPTR即跳转到:(J_TAB)+3*(R3R2)位置去
假如:(R3R2) = 12那么LJMP就跳转到LJMP PROC12,
而LJMP PROC12又能跳转到PROC12位置去。
这就是跳转,懂了吧!!!!呵呵
热心网友
时间:2023-10-22 20:37
应该是DPL,而且这里根据R3R2的值来计算散转是没有意义的,A最大超不过一个字节,怎么可能靠16位数乘3得到散转结果来。