用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
;--------------------------