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#4500是双字常数,这样就没有4095的限制了。
地址指针常数p#4500.0的字节地址为4500,字节内的位地址为0,p#4500.0相当于3500与8的乘积(以位为单位的整数)。rld 3(左移3位)相当于乘以8。