; FILENAME: 网页链接 .486
.MODEL SMALL
.STACK 100H
.DATA
NUM DB -19, 28, 37, -46, 55, 61, -74, 255
NEG_COUNT DB 0
MAX_NUM DB 0FFH
MAX_INDEX DB 0
MSG_NEG DB 'Negative numbers count: ', 0
MSG_MAX DB 'Max number in binary: ', 0
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
; 统计负数个数
LEA SI, NUM
MOV CX, 8
XOR BH, BH
XOR BL, BL
COUNT_LOOP:
LODSB
TEST AL, 80H
JZ NOT_NEGATIVE
INC NEG_COUNT
NOT_NEGATIVE:
CMP AL, MAX_NUM
JB NOT_MAX
MOV MAX_NUM, AL
MOV MAX_INDEX, BL
NOT_MAX:
INC BL
LOOP COUNT_LOOP
; 显示负数个数
MOV AL, NEG_COUNT
ADD AL, 30H
MOV NEG_COUNT, AL
MOV AH, 9
LEA DX, MSG_NEG
INT 21H
MOV DL, NEG_COUNT
INT 21H
MOV DL, 10
INT 21H
MOV DL, 13
INT 21H
; 显示最大数的二进制形式
MOV AH, 9
LEA DX, MSG_MAX
INT 21H
MOV SI, MAX_INDEX
MOV AL, NUM[SI]
MOV CX, 8
PRINT_BINARY:
ROL AL, 1
MOV DL, '0'
ADC DL, 0
INT 21H
LOOP PRINT_BINARY
MOV DL, 10
INT 21H
MOV DL, 13
INT 21H
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
.MODEL SMALL
.STACK 100H
.DATA
NUM DB -19, 28, 37, -46, 55, 61, -74, 255
NEG_COUNT DB 0
MAX_NUM DB 0FFH
MAX_INDEX DB 0
MSG_NEG DB 'Negative numbers count: ', 0
MSG_MAX DB 'Max number in binary: ', 0
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
; 统计负数个数
LEA SI, NUM
MOV CX, 8
XOR BH, BH
XOR BL, BL
COUNT_LOOP:
LODSB
TEST AL, 80H
JZ NOT_NEGATIVE
INC NEG_COUNT
NOT_NEGATIVE:
CMP AL, MAX_NUM
JB NOT_MAX
MOV MAX_NUM, AL
MOV MAX_INDEX, BL
NOT_MAX:
INC BL
LOOP COUNT_LOOP
; 显示负数个数
MOV AL, NEG_COUNT
ADD AL, 30H
MOV NEG_COUNT, AL
MOV AH, 9
LEA DX, MSG_NEG
INT 21H
MOV DL, NEG_COUNT
INT 21H
MOV DL, 10
INT 21H
MOV DL, 13
INT 21H
; 显示最大数的二进制形式
MOV AH, 9
LEA DX, MSG_MAX
INT 21H
MOV SI, MAX_INDEX
MOV AL, NUM[SI]
MOV CX, 8
PRINT_BINARY:
ROL AL, 1
MOV DL, '0'
ADC DL, 0
INT 21H
LOOP PRINT_BINARY
MOV DL, 10
INT 21H
MOV DL, 13
INT 21H
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN










