OPN DB100
L 0
LAR1
L 3500
ITD
RLD 3
+AR1
L DBW [AR1, P#0.0] //读出DB100.DBW3500
但是当地址>4095后,由于4096的值 RLD 3 后所的值已经大于等于32768
造成AR1中的值错误 (很大的数值)。
所以此时左移3位已经不能获得正确的地址值。
请教各位有什么其它解决方法?谢谢。
L 0
LAR1
L 3500
ITD
RLD 3
+AR1
L DBW [AR1, P#0.0] //读出DB100.DBW3500
但是当地址>4095后,由于4096的值 RLD 3 后所的值已经大于等于32768
造成AR1中的值错误 (很大的数值)。
所以此时左移3位已经不能获得正确的地址值。
请教各位有什么其它解决方法?谢谢。
答:程序可以简化为下图中的程序:
L#4500是双字常数,这样就没有4095的限制了。
地址指针常数P#4500.0的字节地址为4500,字节内的位地址为0,P#4500.0相当于3500与8的乘积(以位为单位的整数)。RLD 3(左移3位)相当于乘以8。