OPN DB100
L 0
LAR1
L 3500
ITD
RLD 3
+AR1
L DBW [AR1, P#0.0] //讀出DB100.DBW3500
但是當(dāng)?shù)刂?gt;4095后,由于4096的值 RLD 3 后所的值已經(jīng)大于等于32768
造成AR1中的值錯(cuò)誤 (很大的數(shù)值)。
所以此時(shí)左移3位已經(jīng)不能獲得正確的地址值。
請(qǐng)教各位有什么其它解決方法?謝謝。
L 0
LAR1
L 3500
ITD
RLD 3
+AR1
L DBW [AR1, P#0.0] //讀出DB100.DBW3500
但是當(dāng)?shù)刂?gt;4095后,由于4096的值 RLD 3 后所的值已經(jīng)大于等于32768
造成AR1中的值錯(cuò)誤 (很大的數(shù)值)。
所以此時(shí)左移3位已經(jīng)不能獲得正確的地址值。
請(qǐng)教各位有什么其它解決方法?謝謝。
答:程序可以簡(jiǎn)化為下圖中的程序:
L#4500是雙字常數(shù),這樣就沒有4095的限制了。
地址指針常數(shù)P#4500.0的字節(jié)地址為4500,字節(jié)內(nèi)的位地址為0,P#4500.0相當(dāng)于3500與8的乘積(以位為單位的整數(shù))。RLD 3(左移3位)相當(dāng)于乘以8。