加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

【转】求若干十进制数平均值,并输出(汇编语言)

(2009-11-03 11:30:51)
标签:

教育

分类: 计算机

这是一个"求若干十进制数平均值,并输出"的实例

从键盘上获得若干个十进制数,求他们的平均值,并输出到屏幕上


   

.从键盘上输入若干个十进制数,并计算它们的平均值,并在屏幕上显示这个平均值

    

   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

         MOV AH,9

         INT 21H

         MOV BL, 0

         MOV DI,OFFSET NUM

         MOV DX,OFFSET INPUT

         MOV AH,0AH

         INT 21H

         MOV DX,OFFSET INPUT+2

         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

         MOV AH,9

         INT 21H

         MOV DX,OFFSET INPUT

         MOV AH,0AH

         INT 21H

         MOV SI,OFFSET INPUT+1

         MOV CL,[SI]

         INC SI

         CMP BYTE PTR [SI],'#'

         JZ DONE

         MOV CH, 0

         CALL ADECXB

         MOV [DI],AX

         INC BL

         INC DI

         INC DI

         JMP INN

   DONE: MOV DX, 0

         PUSH BX

         MOV DI,OFFSET NUM

     R:  MOV AX,[DI]

         ADD DX,AX

         INC DI

         INC DI

         DEC BL

         CMP BL,0

         JNZ R

         MOV AX,DX

         MOV DX,OFFSET 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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有