展开查看
以下是引用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
谢谢这么详细的解释和帮助.
1、DB问题
OPN DB 200
L DBB [MD 500]
读到的是DB200.DBB764而不是DB952.DBB764,毕竟只有2个DB寄存器,如果有3个DB参与就要另想办法了。
关于这个是我的笔误,实在是对不起.该处DB952.DBB764应该是DB200.DBB764.
2.对于我减0.1,原因是这样的,由于偏移量是从1---6(内容决定不能拿从0开始). 所以不是从0开始,但是存储的目标是28.0开始,所以我做了个比较笨的想法就减0.1了.
3.谢谢解释,我会修改下尝试.
再次谢谢!