El lenguaje ensamblador implementa la suma de bloques de datos, valores máximos y mínimos y clasificación.
; Ordenar de pequeño a grande
; Generar 20 números
SEGMENTO DE DATOS
Ingrese el código del segmento de datos aquí
>NUM DW 3, 2, 1, 0
COUNT EQU ($-NUM)/2;N número
DATAS TERMINA
SEGMENTO DE PILAS
; Introduzca aquí el código del segmento de pila
DW 40H DUP (?)
PALABRA DE ETIQUETA SUPERIOR
EXTREMOS DE PILAS
SEGMENTO DE CÓDIGOS
ASUME CS: CÓDIGOS, DS: DATAS, SS: PILAS
PROC PRINCIPAL LEJOS
INICIO:
MOV AX, DATAS
MOV DS, AX
MOV AX, STACKS
MOV SS, AX
LEA SP, TOP
>; Introduzca el fragmento de código aquí
MOV CX, COUNT
DEC CX
LEA SI, NUM
CLD p>
L2:
CALL SORT; clasificación de burbujas, ordenar de pequeño a grande
LOOP L2
MOV CX, COUNT
LEA SI, NUM
CLD
L3:
SALIDA DE LLAMADA; genera un número con signo decimal
MOV DL, ' '
MOV AH, 6
INT 21H; delimitador de salida
LOOP L3
MOV AH, 4CH
INT 21H
MAIN ENDP
; Parámetros entrantes: CX, número de comparaciones; SI, posición inicial de la matriz
; Valor de retorno: Matriz
p>;Función: Mover el número más grande al final de la matriz
SORT PROC NEAR
PUSH CX
PUSH SI
L4:
LODSW
CMP AX, [SI]
JNA L5
XCHG AX, [SI] p>
MOV [SI-2], AX
L5:
LOOP L4
POP SI
POP CX
RET
SORT ENDP
; Parámetros entrantes: SI, ubicación de almacenamiento digital
Valor de retorno: matriz
; >; Función: tomar un número de la ubicación de almacenamiento y generarlo como un número decimal con signo
SALIDA PROC CERCA
PUSH CX
PUSH DI
MOV DI, 10
XOR CX, CX
LODSW
MOV BX, AX
PRUEBA BX, 8000H
JZ L12
MOV DL, '-'
MOV AH, 2
INT 21H
DEC BX
NO BX
L12:
MOV AX, BX
L13:
XOR DX, DX
DIV DI
AÑADIR DX, 30H
PUSH DX
INC CX
CMP AX, 0
JNE L13
MOV AH, 2
L14:
POP DX
INT 21H
LOOP L14
POP DI
POP CX
RET
SALIDA ENDP
CÓDIGOS FINALES
FIN INICIO