间接寻址赋值的问题?
刘玉蓉
发布于2014-11-11 17:01
105
0
标签:
编一个小程序,把变量内容赋值到一个DB块内。开始是整形数据,需要2个字节,赋值到DB1. DBW [#Point],之后为实型数据,需要4个字节。
如何定义这个指针变量[#Point]?刚开始是按照2倍递增,之后按照4倍递增?
好能有个STL语句具体指导一下!
佳答案
例题:
将PIW128- PIW136,共5个字送入DB10的DW128- DW136中,再PID138- PID154,共5个双字送入DB10的DD138- DD154中
OPN DB 10 //打开DB 10
L P#128.0 //初始读指针
LAR1
L P#0.0 //初始写指针
LAR2
L 5 // 5个字的循环计数为初值
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的语句,继续循环
L P#138.0 //初始读指针
LAR1
L P#0.0 //初始写指针
LAR2
L 5 // 5个双字的循环计数为初值
M002: T MB 11 //计数值 送入MB 10
L PID [AR1,P#0.0] //按读指针指示的地址读数据
T DBD [AR2,P#0.0] //按写指针指示的地址写数据
+AR1 P#4.0 //读指针指向下一数据地址
+AR2 P#4.0 //写指针指向下一数据地址
L MB 11 //取循环计数值
LOOP M002 //循环计数值如为0则结束循环;如不为0减1后则转向标号为M001的语句,继续循环