从单片机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

温馨提示:内容为网友见解,仅供参考
无其他回答

从单片机RAM中30H单元开始有32个数据,统计当中正数,0和负数的个数,分别...
;正数、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 ...

51单片机做科学计算器的c语言程序
1.双字节定点操作数:用[R0]或[R1]来表示存放在由R0或R1指示的连续单元中的数据,地址小的单元存放高字节?如果[R0]=1234H,若(R0)=30H,则(30H)=12H,(31H)=34H?2.二进制浮点操作数:用三个字节表示,第一个字节的最高位为数符,其余七位为阶码(补码形式),第二字节为尾数的高字节,第三字节为尾数的低字节...

相似回答