恭喜,你发布的帖子
发布于 2018-01-06 15:11:14
4楼
temp5和temp6是ANY指针变量,整个程序的主要部分就是构建一个完整的ANY指针,以temp5为例:
LAR1 P##TEMP5 //将TEMP5的指针存放在地址寄存器1里
L B#16#10
T LB [AR1,P#0.0] //写入ANY指针的第一个字节B#16#10
L B#16#2
T LB [AR1,P#1.0] //写入ANY指针的第二个字节B#16#2,表示数据的读取以字节位单位
L #IN4
T LW [AR1,P#2.0] //写入ANY指针的第二个字 数据的长度
L #IN0
T LW [AR1,P#4.0] //写入ANY指针的第三个字节 DB块号
//
L W#16#84
T LB [AR1,P#6.0]
L W#16#0
T LB [AR1,P#7.0]
//以上这个部分改成如下比较好
L W#16#84
T LW [AR1,P#6.0] //表示数据的类型是DB块数据
L #IN1
SLW 3 //左移动三位的目的是,IN1输入的是起始字节的号,而地址指针里处理字节地址外,还有位地址,而左移动三位后相当于乘以8,这样就得到了字节的地址
T LW [AR1,P#8.0] //对ANY指针的最后一个双字进行赋值,表示的是数据的地址,
整个程序的意思就是根据输入的变量IN0---IN4,将一个DB块的数据拷贝到另外一个DB块里,
IN0和IN1对应的是来源的数据,IN2和IN3对应的是目标的数据,IN4是数据的长度,两者是一样的。
请填写推广理由:
分享
只看
楼主