Red de conocimiento informático - Conocimiento del nombre de dominio - ¡Preguntas sobre programación de principios de microcomputadoras! ¡Cuenta el número de números negativos!

¡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]

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

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