Utilice la herramienta de diseño en lenguaje ensamblador MASM para diseñar programas simples en lenguaje ensamblador y ejecutarlos para depurarlos
Encontrar los valores mínimo y máximo del bloque de datos
1) Contenido del experimento
Varios números con signo se almacenan en la memoria con BUFFER como el primero dirección El número se almacena en la primera unidad, encuentre su valor máximo y póngalo en la unidad de almacenamiento MAXVAL, y coloque su valor mínimo en la unidad de almacenamiento MINVAL.
El programa fuente en lenguaje ensamblador es el siguiente:
SEGMENTO DE DATOS
BUFFER DB 10, 22, 33, -80, 127, -76, 0, 90, -45, 60, -1
MINVAL DB?
¿MAXVAL DB?
FINES DE DATOS
SEGMENTO DE PILA PARA STACK 'STACK'
STA DB 100 DUP(?)
FINES DE PILA
SEGMENTO DE CÓDIGO
ASUMIR CS:CODE, DS:DATA, ES:DATA, SS:STACK
INICIAR PROC LEJOS
PUBH DS
MOV AX, 0
PUSH AX
MOV AX, DATOS
MOV DS, AX
MOV ES, AX
LEA BX, BUFFER
MOV CH, 0
MOV CL, [BX]
INC BX
MOV AL, [BX]
MOV MINVAL, AL
MOV MAXVAL, AL
INC BX
DEC CX
OTRA VEZ: MOV AL, [BX]
CMP AL, MINVAL
JE NEXT
JG A1
MOV MINVAL , AL
JMP SIGUIENTE
A1: CMP AL, MAXVAL
JL SIGUIENTE
MOV MAXVAL, AL
SIGUIENTE: INC BX
DEC CX
JNE OTRA VEZ
RETF
INICIO ENDP
CÓDIGO FINALIZA
FIN INICIO
2) Pasos experimentales
(1) Utilice un programa de edición para crear un archivo de programa fuente y personalizar el nombre del archivo.
(2) Utilice el ensamblador de macros MASM y el vinculador LINK para ensamblar los archivos del programa fuente en un archivo ejecutable con una extensión EXE.
(3) Use DEBUG para depurar el programa y envíe el archivo ejecutable EXE generado anteriormente a la memoria. Primero use el comando de desensamblado para verificar el contenido del programa y la primera y última dirección, y luego verifique los datos. la unidad de almacenamiento con BUFFER como primera dirección de bloques y el contenido de las unidades MINVAL y MAXVAL. El sistema especifica la dirección del segmento y la dirección de desplazamiento de la unidad de dirección BUFFER durante el montaje y la conexión. En términos generales, los diferentes sistemas son diferentes: la dirección de desplazamiento es cero y la dirección del segmento se puede determinar de acuerdo con la instrucción MOV AX, y los DATOS corresponden al valor de DATOS en el código de máquina al desensamblar el programa.
(4) Ejecute el programa en DEBUG y verifique los resultados de la ejecución.
(5) Modifique cada dato en el área de datos BUFFER en el programa fuente, vuelva a ensamblarlo y ejecútelo nuevamente, y verifique los resultados.