指針程序修改
劉玉蓉
發(fā)布于2014-10-21 17:19
214
0
標(biāo)簽:
這里有用寄存器間接尋址編的程序,可否用存儲(chǔ)器間接尋址改寫,達(dá)到同樣效果。
將PIW128- PIW137,共100個(gè)字送入DB10中:
如果用直接尋址,一取一送兩個(gè)指令要重復(fù)100遍。如用指針變址與循環(huán)語句:
在OB1:
OPN DB 10 //打開DB 10
L P#128.0 //初始讀指針
LAR1
L P#0.0 //初始寫指針
LAR2
L 100 // 1100個(gè)字的循環(huán)計(jì)數(shù)為初值
M001: T MB 10 //計(jì)數(shù)值 送入MB 10
L PIW [AR1,P#0.0] //按讀指針指示的地址讀數(shù)據(jù)
T DBW [AR2,P#0.0] //按寫指針指示的地址寫數(shù)據(jù)
+AR1 P#2.0 //讀指針指向下一數(shù)據(jù)地址
+AR2 P#2.0 //寫指針指向下一數(shù)據(jù)地址
L MB 10 //取循環(huán)計(jì)數(shù)值
LOOP M001 //循環(huán)計(jì)數(shù)值如為0則結(jié)束循環(huán);如不為0減1后則轉(zhuǎn)向標(biāo)號(hào)為M001的語句,繼續(xù)循環(huán)。
這是一個(gè)簡單實(shí)例,如果不同地址執(zhí)行同一程序,這個(gè)程序是一復(fù)雜的過程則更能顯示應(yīng)用變址的好處。
佳答案
OPN DB 10 //打開DB 10
L P#128.0 //初始讀指針
T MD100
L P#0.0 //初始寫指針
T MD200
L 100 // 1100個(gè)字的循環(huán)計(jì)數(shù)為初值
M001: T MB 10 //計(jì)數(shù)值 送入MB 10
L PIW [MD100] //按讀指針指示的地址讀數(shù)據(jù)
T DBW [MD200] //按寫指針指示的地址寫數(shù)據(jù)
L P#2.0
L MD100
+ D
T MD100
TAK
L MD200
+ D
T MD200
L MB 10 //取循環(huán)計(jì)數(shù)值
LOOP M001 //循環(huán)計(jì)數(shù)值如為0則結(jié)束循環(huán);如不為0減1后則轉(zhuǎn)向標(biāo)號(hào)為M001的語句,繼續(xù)循環(huán)。
這是一個(gè)簡單實(shí)例,如果不同地址執(zhí)行同一程序,這個(gè)程序是一復(fù)雜的過程則更能顯示應(yīng)用變址的好處。