输入16个二进制数统计输出1的个数
DATAS SEGMENT
BUF DB 20
DB ?
DB 20 DUP(?)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES, DS:DATAS START:
mov ax, datas
MOV DS, AX
MOV DX, OFFSET BUF
MOV AH, 0AH
INT 21H
MOV SI, offset BUF
MOV CL, [SI + 1]
MOV CH, 0
MOV BL, 0 LOP:
MOV AL, [SI+2]
CMP AL, 31H
JNZ NEXT
INC BL NEXT:
INC SI
LOOP LOP mov al,bl
MOV AH, 0
MOV BL, 10
DIV BL
ADD AL, 30H
MOV DL, AL
MOV BH, AH
MOV AH, 2h
INT 21H
ADD BH, 30H
MOV DL, BH
MOV AH, 2h
INT 21H
mov cx,18 aa: mov dl,' '
MOV AH, 2h
INT 21H
loop aa
STP:
MOV AH, 4CH
INT 21H CODES ENDS
END START