结构推理 已知外RAM 1000H单元开始存有一组数据,其长度存放在该数据区首字节,要求统计出其中大于10、等于10和小于10的数的个数,并把统计结果分别存入内RAM 30H~32H单元。
【正确答案】编程如下:
   STOR:MOV    DPTR,#1000H ;置数据区首址
        MOVX   A,@DPTR    ;读数据长度
        MOV    R2,A       ;存数据长度
   SLOP:INC    DPTR       ;指向下一数据
        MOVX   A,@DPTR    ;读数据
        CNE    A,#10,NEXT ;数据与10比较
        INC    31H        ;数据=10,31H+1→31H
   SCOM:DJNZ   R2,SLOP    ;判统计结束否?未结束循环
        RET               ;统计结束,返回
   NEXT:JNC    SLP1       ;C=0,数据大于10,转
        INC    32H        ;C=1,数据小于10,32H+1→32H
        SJMP   SCOM       ;转判统计结束否?
   SLP1:INC    30H        ;数据大于10,30H+1→30H
        SJMP   SCOM       ;转判统计结束否?
【答案解析】