统计一个有10人的班中,男、女生的人数各是多少。将统计的男生人数存入变量MANK中,女生人数存入变量WOMAN中。 算法分析: 男、女生的标志可用“0”、“1”字符来表示,并从键盘输入此标志。

统计一个有10人的班中,男、女生的人数各是多少。将统计的男生人数存入变量MANK中,女生人数存入变量WOMAN中。
算法分析:
男、女生的标志可用“0”、“1”字符来表示,并从键盘输入此标志。根据题意,总人数已知,在此范围下,对输入标志进行分类求和显然可用循环结构来完成。每循环一次使相应人数增1,而循环计数值减1,直至该计数值为0。

提前声明:本人使用Masm for Windows 2015编译

代码如下:

DATAS SEGMENT
;此处输入数据段代码
BUF DB 1,0,1,0,1,0,1,0,1,0
MANK DB 0
WOMAN DB 0
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV SI,0
AGAIN:
CMP BUF[SI],1
JZ JL1
JMP JL2
JL1:
INC MANK
JMP EXIT
JL2:
INC WOMAN
JMP EXIT
EXIT:
INC SI
CMP SI,10
JNZ AGAIN
MOV AH,2
MOV DL,MANK
ADD DL,30H
INT 21H
MOV DL,13
INT 21H
MOV DL,10
INT 21H
MOV DL,WOMAN
ADD DL,30H
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START

代码已运行,结果正确
统计一个有10人的班中,男、女生的人数各是多少。将统计的男生人数存入变量MANK中,女生人数存入变量WOMAN中。 算法分析: 男、女生的标志可用“0”、“1”字符来表示,并从键盘输入此标志。截屏如上