结构推理 有一个循回检测报警装置,需对16路输入信号进行控制,每路各有一个最大允许值,若超出即报警(置报警标志FD),试编制该程序。设16路输入信号已存在以30H为首址的内RAM中,16路报警上限值存在以2000H为首址的ROM中。
【正确答案】编程如下:
   AIAM:MOV  DPTR,#2000H    ;置16路报警上限表首址
        MOV  R0,#30H        ;置16路输入信号数据区首址
        MOV  R2,#0          ;置16路输入信号序号0
   ALOP:MOV  B,@R0          ;检测信号存B
        MOV  A,R2           ;读输入信号序号
        MOVC A,@A+DPTR      ;查该序号对应的报警上限值
        CJNE A,B,NEXT       ;与对应的输入信号比较
   NEXT:JC   ALAM1          ;报警上限值<输入信号,转报警
        JZ   ALAM1          ;报警上限值=输入信号,转报警
        INC  R0             ;指向下一路输入信号
        INC  R2             ;指向下一路输入信号序号
        CJNE R2,#16,ALOP    ;判16路检测循回完否?未完继续
        CLR  F0             ;16路检测循回完毕,清报警标志
        RET                 ;结束返回
   AIAMI:SETB F0            ;置报警标志
         RET                ;
【答案解析】