展开查看
以下是引用emil128在2014-10-30 16:08:41的发言 >4楼:楼主的程序写的还是很规范的
虽然从实际效果上
P#0.0 = L#0
P#0.1 = L#1
但既然其他地方都规范了,那表示地址的地方还是用P#比较好。
程序的错误也还是有的
1、DB问题
OPN DB 200
L DBB [MD 500]
读到的是DB200.DBB764而不是DB952.DBB764,毕竟只有2个DB寄存器,如果有3个DB参与就要另想办法了。
2、寻址
L MD 300
L MD 600
+D
L P#0.1
-D
T MD 300
这里为什么要减0.1?这样不是反而倒退了
3、偏移量叠加
在加完MD600后,再次循环时之前的MD600并没有减掉,会叠加。
比如第一个偏移5,第二个偏移7,第三个偏移3,结果实际效果是第二次偏移了12,第三次偏移了15
改成这样,加完偏移量去赋值,赋完值再减去偏移量
L MD 300
L MD 600
+D
T MD 300
A DBX [MD 300]
= DIX [MD 400]
L MD 300
L MD 600
-D
L P#0.1
+D
T MD 300
另外对于第三个问题:
在循环程序的开始,程序是:
L DBB [MD 500]
T MD 600 //偏移量
这个里面的偏移量从其他地方得到的,不是累加的.