Lenguaje ensamblador para escribir un programa para encontrar el valor máximo, el valor mínimo y la suma
;------------------------------------------ ------ ------------------
; Escribe un programa para encontrar el máximo, el mínimo y la suma
; >; Datos en datos Inicialización directa dentro del segmento
; El rango de datos está entre 0 y 100 y se pueden usar variables de bytes. Dado que la cantidad de datos no es mucha, la suma se puede usar como palabra. variables
; Los resultados calculados se muestran en la pantalla
.MODEL SMALL
;--------------- ------ -------------------------------------
; Definición de segmento de datos
;------------------------------------- ----------- ------------------
.DATA
; La matriz está inicializada. directamente en el segmento de datos
ARRY DB 5, 6, 7, 8, 16, 4, 7; El total no puede exceder 255
ARRY_LEN EQU $ - ARRY; calculando el número de datos
; Definir datos de visualización
D_MAX DB 13, 10, 'MAX = $'
D_MIN DB 13, 10, 'MIN = $'
D_SUM DB 13, 10, 'SUM = $'
; Definir variables
MAX DB 0; MIN DB 255; valor mínimo
SUM DB 0 ; Suma
.CODE
NUM_STR PROC
MOV AH, 0
MOV BL, 100
DIV BL
MOV DX, AX
MOV AH, 2
AÑADIR DL, 30H
INT 21H
MOV AL, DH
MOV AH, 0
MOV BL, 10
DIV BL
MOV DX, AX
MOV AH, 2
AÑADIR DL, 30H
INT 21H
MOV DL, DH
AÑADIR DL, 30H
INT 21H
RET
NUM_STR ENDP
; función
INICIAR PROC
MOV AX, @DATA
MOV DS, AX
El siguiente programa de bucle encuentra MAX, MIN, SUMA
MOV BX, OFFSET ARRY
MOV CX, ARRY_LEN
LOP:
MOV AL, [BX]
CMP AL, MAX
JC SIGUIENTE1
MOV MAX, AL
SIGUIENTE1:
CMP
AL, MIN
JNC NEXT2
MOV MIN, AL
NEXT2:
AÑADIR SUMA, AL
INC BX
LOOP LOP
El siguiente programa maneja la visualización de MAX
LEA DX, D_MAX
MOV AH, 9
INT 21H
MOV AL, MAX
CALL NUM_STR
El siguiente programa maneja la visualización de MIN
> LEA DX, D_MIN
MOV AH, 9
INT 21H
MOV AL, MIN
LLAMADA NUM_STR
; debajo El programa maneja la visualización de SUM
LEA DX, D_SUM
MOV AH, 9
INT 21H
MOV AL, SUM
CALL NUM_STR
; Fin del programa
MOV AX, 4C00H
INT 21H
INICIO FIN
FIN INICIO