1. 程式人生 > >用80x86組合語言程式設計--統計1和0的個數,並顯示

用80x86組合語言程式設計--統計1和0的個數,並顯示

;統計10個人中男女數量。
;就是輸入1和0,一共10個,統計1和0的個數,並顯示。

;--------------------------

;最佳答案(精彩回答):

DATAS  SEGMENT
      mank  db  0  ;0  or  30h
      woman  db  0
      put  db  ' Input  1  or  0 :', 0ah, 0dh, '$'
      err  db  '  error', 0ah, 0dh, '$' 
      num1  db  'the  number  of  man  is:', '$'
      num2  db  'the  nember  of  woman  is:', '$'
DATAS  ENDS

STACKS  SEGMENT
      ;此處輸入堆疊段程式碼
STACKS  ENDS

CODES  SEGMENT
      ASSUME  CS:CODES, DS:DATAS, SS:STACKS
START:
      MOV  AX, DATAS
      MOV  DS, AX
;--------------------------
      MOV  DX, OFFSET  PUT
      MOV  AH, 9
      INT  21H

      MOV  CX, 10
NEXT:
      MOV  DL, 0AH
      MOV  AH, 2
      INT  21H
      MOV  DL, 0DH
      MOV  AH, 2
      INT  21H

      MOV  AH, 1
      INT  21H
      SUB  AL, 30H

      CMP  AL, 1        ;1  OR  31H
      JE   MANS

      CMP  AL, 0
      JE   WOMS

      INT  21H
      MOV  DX, OFFSET  ERR
      MOV  AH, 9
      INT  21H
      JMP  NEXT
;--------------------------
MANS: 
      ADD  MANK, 1
      LOOP NEXT
      JMP  EXIT
;--------------------------
WOMS:
      ADD  WOMAN, 1
      LOOP NEXT
;--------------------------
EXIT:
      MOV  DL, 0AH
      MOV  AH, 2
      INT  21H
      MOV  DL, 0DH
      MOV  AH, 2
      INT  21H

      MOV  DX, OFFSET  NUM1 
      MOV  AH, 9
      INT  21H

      MOV  DL, MANK
      ADD  DL, 30H
      MOV  AH, 2
      INT  21H

      MOV  DL, 0AH
      MOV  AH, 2
      INT  21H
      MOV  DL, 0DH
      MOV  AH, 2
      INT  21H

      MOV  DX, OFFSET  NUM2 
      MOV  AH, 9
      INT  21H

      MOV  DL, WOMAN
      ADD  DL, 30H
      MOV  AH, 2
      INT  21H
;--------------------------
      MOV  AH, 4CH
      INT  21H
CODES  ENDS
      END  START
;=================================================
注意:上述程式,僅僅是修改了提問者程式中的錯誤,仍然還是僅能顯示一位數。
如果男(或女)為10人,需要顯示兩位數字,對此就簡略了,只是顯示一個“:”。
;=================================================
提問者對於答案的評價:謝謝!
原題網址:http://zhidao.baidu.com/question/264380932.html
;--------------------------