quote:以下是引用鹅卵石在2011-12-15 11:07:15的发言:
请大侠们看看错误在哪里?
“这是往一个1-100数组里写数的程序
写入的数就是自己的地址
L P#0.0 从0地址开始
OPN DB 1 DB1也下载了里面是一个ARRAY[1..100] INT型的数组
Labe: INC 1 地址+1
LAR1 ACCU1到AR1
T DBW [AR1,P#2.0] 这里出错,ACCU1到DB1
L P#100.0
XOW
JN Labe
NOT
”
我觉得, “Labe: INC 1 地址+1”应该改为“Labe: INC 8 地址+1”。
————————————————————————————————————————————————
鹅卵石大侠,我认为存在的问题有如下几点:
1:INC 8指令有些不妥,INC指令是针对字节整数操作的指令,超出255就溢出了;改为+ 8指令比较好,+指令是针对整数、双整数操作的,能满足寻址范围要求;
2:XOW是个字异或指令,是操作ACCU1底16位和ACCU2 底16位相异或,而指针在累加器里面地址表达范围是0bit~18bit,加上地址标识符和空位是一个32位的数据,尽管语法上没有错误,此时使用XOW指令会丢失某些位的信息,不建议这样使用和判断!