指针程序修改
刘玉蓉
发布于2014-10-21 17:19
214
0
标签:
这里有用寄存器间接寻址编的程序,可否用存储器间接寻址改写,达到同样效果。
将PIW128- PIW137,共100个字送入DB10中:
如果用直接寻址,一取一送两个指令要重复100遍。如用指针变址与循环语句:
在OB1:
OPN DB 10 //打开DB 10
L P#128.0 //初始读指针
LAR1
L P#0.0 //初始写指针
LAR2
L 100 // 1100个字的循环计数为初值
M001: T MB 10 //计数值 送入MB 10
L PIW [AR1,P#0.0] //按读指针指示的地址读数据
T DBW [AR2,P#0.0] //按写指针指示的地址写数据
+AR1 P#2.0 //读指针指向下一数据地址
+AR2 P#2.0 //写指针指向下一数据地址
L MB 10 //取循环计数值
LOOP M001 //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。
这是一个简单实例,如果不同地址执行同一程序,这个程序是一复杂的过程则更能显示应用变址的好处。
佳答案
OPN DB 10 //打开DB 10
L P#128.0 //初始读指针
T MD100
L P#0.0 //初始写指针
T MD200
L 100 // 1100个字的循环计数为初值
M001: T MB 10 //计数值 送入MB 10
L PIW [MD100] //按读指针指示的地址读数据
T DBW [MD200] //按写指针指示的地址写数据
L P#2.0
L MD100
+ D
T MD100
TAK
L MD200
+ D
T MD200
L MB 10 //取循环计数值
LOOP M001 //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环。
这是一个简单实例,如果不同地址执行同一程序,这个程序是一复杂的过程则更能显示应用变址的好处。