⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 带输入求任意个平均数.asm

📁 求任意个数的平均值
💻 ASM
字号:
   DATA  SEGMENT 
   INPUT DB 4 
         DB ? 
         DB 4 DUP (?) 
         DB '$' 
   NUM   DW 20 DUP(?) 
   AVE   DB ? 
   OUTPUT1 DB 'INPUT A NUMBER',0DH,0AH,'$' 
   OUTPUT2 DB 'INPUT AGAIN(END WITH #)',0DH,0AH,'$' 
   OUTPUT3 DB 'AVERAGE IS:','$' 
   DATA  ENDS 
   ;---------------- 
   CODE SEGMENT 
        ASSUME CS:CODE,DS:DATA 
    MAIN PROC FAR 
         PUSH DS 
         XOR AX,AX 
         PUSH AX 
         MOV  AX,DATA 
         MOV  DS,AX 
   START:MOV DX,OFFSET OUTPUT1      ;9 output1
         MOV AH,9 
         INT 21H 

         MOV BL, 0 
         MOV DI,OFFSET NUM 

         MOV DX,OFFSET INPUT         ;0A string in
         MOV AH,0AH 
         INT 21H 

         MOV DX,OFFSET INPUT+2       ;9 out the string
         MOV AH,9 
         INT 21H 

         MOV SI,OFFSET INPUT+1       
         MOV CL,[SI] 
         INC SI 
         MOV CH,0 

         CALL ADECXB 
         MOV  [DI],AX                ;///////////////
         INC BL 
         INC DI 
         INC DI 

   INN:  MOV DX,OFFSET OUTPUT2         ;9 output2
         MOV AH,9 
         INT 21H 

         MOV DX,OFFSET INPUT            ;0A string2 in
         MOV AH,0AH 
         INT 21H 

         MOV SI,OFFSET INPUT+1          ;cl jishu
         MOV CL,[SI]                    ;si zhi sourse
         INC SI 

         CMP BYTE PTR [SI],'#'          ;si wei #,done
         JZ DONE 

         MOV CH, 0 
         CALL ADECXB 
         MOV [DI],AX 
         INC BL 
         INC DI 
         INC DI 

         JMP INN                        ;loop string in

   DONE: MOV DX, 0                       ;#shi
         PUSH BX 
         MOV DI,OFFSET NUM 


     R:  MOV AX,[DI]                   ; add add add
         ADD DX,AX 
         INC DI 
         INC DI 
         DEC BL 
         CMP BL,0 
         JNZ R 

         MOV AX,DX 
         MOV DX,OFFSET OUTPUT3         ;9 output3
         PUSH AX 
         MOV AH,9 
         INT 21H 

         POP AX 
         POP BX 
         DIV BL 
         MOV AH,0 
         MOV BL,100 
         DIV BL 
         MOV BH,AL 
         ADD BH,30H 
         MOV DL,BH 
         PUSH AX 
         MOV AH,2 
         INT 21H 
         POP AX 
         MOV AL,AH 
         MOV AH,0 
         MOV BL,10 
         DIV BL 
         ADD AL,30H 
         MOV DL,AL 
         PUSH AX 
         MOV AH,2 
         INT 21H 
         POP AX 
         ADD AH,30H 
         MOV DL,AH 
         MOV AH,2 
         INT 21H 
         RET 
    MAIN ENDP 
         ;------------- 
    ADECXB PROC 
         PUSH BX 
         PUSH CX 
         PUSH DX 
         PUSH SI 
         MOV BH,0 
         XOR AX,AX 
   AGAIN:ADD AX,AX 
         MOV DX,AX 
         ADD AX,AX 
         ADD AX,AX 
         ADD AX,DX 
         MOV BL,[SI] 
         AND BL,0FH 
         ADD AX,BX 
         INC SI 
         LOOP AGAIN 
         POP SI 
         POP DX 
         POP CX 
         POP BX 
         RET 
  ADECXB ENDP 
  CODE   ENDS 
         END MAIN 
  
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -