quote:以下是引用luckywjl在2012-04-01 13:02:48的发言:
OPN DB100
L 0.0
LAR1
L 3500 (补充一下,3500这个地址只是举例。地址为变量)
ITD
RLD 3
+AR1
L DBW [AR1, P#0.0] //这时候读出的值是DB100.DBW3500
但是当地址>4095后,由于4096的值 RLD 3 后所的值已经大于等于32768
造成AR1中的值错误 (很大的数值)。
所以此时左移3位已经不能获得正确的地址值。
请教各位有什么其它解决方法?谢谢
地址指针是32位的双字,楼主的程序改为
OPN DB100
L 0.0
LAR1
L L#3500
RLD 3
+AR1
L DBW [AR1, P#0.0] //这时候读出的值是DB100.DBW3500
L#3500是双字常数,这样就没有4095的限制了。