¡Preguntas sobre programación de principios de microcomputadoras! ¡Cuenta el número de números negativos!
Cuenta el número de números negativos
Supongamos que el segmento de datos tiene la siguiente definición de número con signo
NUM DB -19, 28, 37, -46, 55 , 61 , -74, 255
Diseñe un programa para completar dos requisitos:
⑴ Contar y mostrar el número de números negativos
⑵ Encontrar el máximo; y valor mínimo y se muestra en la pantalla.
El formato de visualización depende de ti.
.MODEL PEQUEÑO
.STACK 100
.DATA
NUM DB -19, 28, 37, -46, 55, 61, -74, 255
COUNT EQU $-OFFSET NUM
DATOS DB 3 DUP(0)
MESS1 DB " MAX: $"
MESS2 DB "MIN:$"
MESS3 DB " NÚMERO DE NEGETIVOS:$"
.CODE
.STARTUP
MOV SI, NÚMERO DE COMPENSACIÓN
MOV DI, DATOS DE COMPENSACIÓN
MOV AL, [SI]
MOV [DI], AL
MOV [DI 1], AL
MOV CX, COUNT; el número de datos en la memoria
XOR BX, BX; almacene el número y finalmente guárdelo en [ DI 2]
COMP: MOV AL, [SI]; comparación de bucle y valor de actualización
INC SI
CMP AL, [DI]
JL L1
MOV [DI], AL
L1: CMP AL, [DI 1]
JG L2
MOV [DI 1 ], AL
L2: CMP AL, 0
JGE L3
INC BX
L3: BUCLE COMP
MOV [DI 2], BX
MOV DX, OFFSET MESS1;-----Valor máximo de salida
MOV AH, 9
INT 21H
MOV AL, [DI]
SALIDA DE LLAMADA
MOV DX, OFFSET MESS2 -----Valor mínimo de salida
MOV AH, 9
INT 21H
MOV AL, [DI 1]
SALIDA DE LLAMADA
MOV DX, OFFSET MESS3; - ----Emite el número de números negativos
MOV AH, 9
INT 21H
MOV AL, [DI 2] p>
SALIDA DE LLAMADA
MOV AH, 4CH
INT 21H
------Entero hexadecimal de salida del subproceso
PROC DE SALIDA
MOV BL, AL
MOV CL, 4
SHR AL, CL
LLAMADA IMPRESIÓN; bit alto
MOV AL, BL
AND AL, 0FH
CALL PRINT; salida bit bajo
MOV AH, 2 p>
MOV DL, 'H'
INT 21H; símbolo H de salida
RET
SALIDA ENDP
PROC DE IMPRESIÓN ; Subrutina, salida 16 Número base
MOV AH, 02H
MOV DL, AL
CMP DL, 09H
JB L4<; /p>
AÑADIR DL, 7
L4: AÑADIR DL, 30H
INT 21H
RET
IMPRIMIR ENDP
.EXIT
END