从单片机RAM中30H单元开始有32个数据,统计当中正数,0和负数的个数,分别放于R5.R6.R7

从单片机RAM中30H单元开始有32个数据,统计当中正数,0和负数的个数,分别放于R5.R6.R7求大神解答单片机作业

;正数、0、负数的个数分别存放在R5、R6、R7中
;指令JZ或者JNZ是判断0的指令,正负可以通过判断ACC.7这一位,为1是负数。
         ORG    0000H
 START:         
         MOV    R0,#30H;起始地址30H         
         MOV    R4,#32;32个数据         
         CLR    A         
         MOV    R5,A         
         MOV    R6,A          
         MOV    R7,A
 LOOP:          
         MOV    A,@R0          
         JNZ       LOOP1;非0则跳转          
         INC     R6  ;0的个数累计          
         SJMP    LOOP_NEXT
 LOOP1:          
          JB    ACC.7,LOOP2  ;最高位为1(说明是负数)则跳转          
          INC    R5;正数个数累计
          SJMP    LOOP_NEXT
LOOP2:          
         INC    R6;负数个数累计
LOOP_NEXT:            
         INC    R0          
         DJNZ    R7,LOOP            
 SJMP    $           
  END

温馨提示:答案为网友推荐,仅供参考
相似回答