恭喜,你发布的帖子
发布于 2015-12-10 19:16:40
3楼
大家好,请教个问题。我有个共享DB区,我需要在DBW600-DBW800这个区域比较,如果这个区域的任何一个字大于0,我需要DBW1000-1200对应的字+1。比如:DBW704大于0时,DBW1704加。请问,有没有方便的方法解决?
按照“菲戈”大侠的思路写了点代码,楼主可以测试一下。
OPN DB xxx //打开数据块xxx
LAR1 P#0.0 //初始化地址寄存器 (定义间接寻址的起始地址)
L 99 //装载循环次数(100个字-1)
NEXT: T LW 20 //将循环次数暂存到临时变量
L DBW [AR1,P#600.0] //装载被比较的数据
L 0 //装载0
>I //判断当前的数据是否大于0
JCN M001 //如果不大于0,跳转到M001
L DBW [AR1,P#1000.0] //如果大于0,装载目标数据
+ 1 //目标数据+1
T DBW [AR1,P#1000.0] //存储目标数据
M001: +AR1 P#2.0 //地址寄存器1内容增大2个字节(查询下一个字)
L LW 20 //装载当前的循环次数
LOOP NEXT //跳转到NEXT标签,循环次数减1至0时,离开循环往下执行
但这里有个漏洞,随着这段代码执行次数的增加,目标数据可能会超出32768溢出。
请填写推广理由:
分享
只看
楼主