首先声明:我在程序中新建了DB1,DB2,DB3的全局数据块,里面分别定义了100个int类型的变量并对他们一一赋了初值。
如下:我想实现的是把DB1.DBW(0->20)的数值与DB2.DBW(0->20)相加并送到DB3.DBW(0->20)中,就编写如下程序,按理来说,这个间接寻址的索引也没有越界,不知问题出在哪里?
ASs='html_titleimg_p' STyle='text-align:CEnter;'>
L0
TMD0//把间接寻址的地址刚开始赋为零,表示从零索引号开始
L20//循环次数为20次
TMB100//存储循环次数的变量
M1:OPNDB1//先打开DB1并截入指针索引的变量至累加器1
LDBW[MD0]
OPNDB2//打开DB2并截入指针索引的变量至累加器1
LDBW[MD0]
+I
OPNDB3//打开DB3并存入前面两个数相加的值
TDBW[MD0]
LMD0
INC1
TMD0
LMB100
LOOPM1
最佳答案
LAR1P#0.0//指针赋零
L11
M1:TMB0//写入循环次数
OPNDB1//打开DB1
LDBW[AR1,P#0.0]//装载DB1的数据
OPNDB2//打开DB2
LDBW[AR1,P#0.0]//装载DB2的数据
+I
OPNDB3//打开DB3
TDBW[AR1,P#0.0]//将相加结果送入DB3
+AR1P#2.0//指针偏移2
LMB0//写入循环次数
LOOPM1
通过仿真运行能达到你的要求.
提问者对于答案的评价:
谢谢
专家置评
已阅,最佳答案正确。