下载程序时,CPU将编译该程序,如果CPU发现程序违反编译规则(如出现非法指令),就会停止下载程序,并生成一个非致命编译规则错误代码。表1列出了违反编译规则生成的错误代码及其意义。
表1 编译规则错误
错误代码 |
含 义 |
0080 |
程序太大无法编译:需缩短程序 |
0081 |
堆栈溢出:需把一个网络分成多个网络 |
0082 |
非法指令:检查指令助记符 |
0083 |
无MEND或主程序中有不允许的指令:加上MEND或删去不正确的指令 |
0084 |
保留 |
0085 |
无FOR指令:加上FOR指令或删除NEXT指令 |
0086 |
无NEXT:加上NEXT指令或删除FOR指令 |
0087 |
无标号(LBL,INT,SBR):加上合适标号 |
0088 |
无RET或子程序中有不允许的指令:加上RET或删去不正确指令 |
0089 |
无RETI或中断程序中有不允许的指令:加上RETI或删去不正确指令 |
008A |
保留 |
008B |
从/向一个SCR段的非法跳转 |
008C |
标号重复(LBL,INT,SBR):重新命名标号 |
008D |
非法标号(LBL,INT,SBR):确保标号数在允许范围内 |
0090 |
非法参数:确认指令所允许的参数 |
0091 |
范围错误(带地址信息):检查操作数范围 |
0092 |
指令计数域错误(带计数信息):确认最大计数范围 |
0093 |
FOR/NEXT嵌套层数超出范围 |
0095 |
无LSCR指令(装载SCR) |
0096 |
无SCRE指令(SCR结束)或SCRE前面有不允许的指令 |
0097 |
用户程序包含非数字编码和数字编码的EV/ED指令 |
0098 |
在运行模式进行非法编辑(试图编辑非数字编码的EV/ED指令) |
0099 |
隐含网络段太多(HIDE指令) |
009B |
非法指针(字符串操作中起始位置指定为0) |
009C |
超出指令最大长度 |