回复:如何指针读取数组,并判断?

zhangli0

西门子1847工业学习平台

  • 帖子

    17131
  • 精华

    63
  • 被关注

    889

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2015-02-06 13:14:03

5楼

定义变量:
输入变量:
db_no:pointer//输入db号:p#dbxxx.dbx0.0
临时变量:
temar1:dword//地址寄存器
temar2:dword//地址寄存器
ar1data:dword//数据地址1
ar2data:dword//数据地址2
DB_ID:word
count:int
L 84
t count//一共有84套

TAR1 #temp_ar1
TAR2 #temp_ar2
L P##db_no
LAR1
L W [AR1,P#0.0]
T #DB_ID
OPN DB [#DB_ID]

LAR1 P#6.0
m001: TAR1 #ar1data1
TAR1 #ar1data2
L dbd[ar2data]//每一套的第一个数据
L 33
=i
jcn m1
等于33需要执行的程序
m1:nop 0
LAR1 #ar1data2
+AR1 P#1.0
TAR1 #ar1data2//每次偏移1个字节所以这里指针+1
L dbd[ar2data]//每一套的第二个数据
L 37
=i
jcn m2
等于37需要执行的程序
m2:nop 0
LAR1 #ar1data2
+AR1 P#1.0
TAR1 #ar1data2//每次偏移1个字节所以这里指针+1
L dbd[ar2data]//每一套的第三个数据
L 31
=i
jcn m3
等于31需要执行的程序
m3:nop 0
L count
L 1
-i
L 0
>i//循环比较一次后计数减1,如果计数大于说明至少还有一套没有比较完继续循环比较
jcn MM1
LAR1 #ar1data1
+AR1 P#64.0//每套偏移64个字节所以这里指针+64
loop
MM1:nop 0


以上程序纯手写的,难免会有小问题,意思是这个意思。
活到老,学到老!为了生活学习吧!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。