Métodos de diseño y depuración de programas ensambladores.
1) Contenido experimental
Almacena múltiples números con signo en la memoria con el búfer como dirección principal, y sus números se almacenan en la primera unidad. Encuentre su valor máximo y póngalo en la unidad de almacenamiento MAXVAL y póngalo en la unidad de almacenamiento MINVAL. El programa fuente en lenguaje ensamblador es el siguiente:
Segmento de datos
Búfer DB 10, 22, 33, -80, 127, -76, 0, 90, -45, 60, -1
¿MINVAL DB?
¿MAXVAL DB?
Fin de datos
Segmento de pila PARA STACK 'STACK '
STA DB 100 DUP(?)
Fin de pila p>
Fragmento de código
Asumir CS: código, DS: datos, ES: datos, SS: pila
Iniciar el proceso
Publicación p >
MOV AX, 0
PUSH AX
MOV AX, DATOS
MOV DS, AX
MOV, AX Si
Lee BX, Buffer
MOV CH, 0
MOV CL, [BX]
BX Company
MOV·Al[BX]
MOV·Minvall
MOV Maxvall
BX Company
CX de doce meses
Otra vez: MOV AL, [BX]
CMP AL, MINVAL
El siguiente es JE
JG A1
MOV· Minval
El siguiente es JMP
A1: CMP AL, MAXVAL
El siguiente es JL
MOV·Maxval p>
Siguiente: Compañía BX
CX de diciembre
JNE nuevamente
RETF
Iniciar ENDP
Fin del código
Fin inicio
2) Pasos experimentales
(1) Utilice el editor para crear un archivo de programa fuente, el nombre del archivo se personaliza.
(2) Utilice el ensamblador de macros MASM y el vinculador LINK para ensamblar los archivos fuente y generar un archivo ejecutable con la extensión EXE.
(3) Utilice el depurador DEBUG para enviar el archivo ejecutable EXE generado 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 bloques de datos en la unidad de almacenamiento con el búfer como dirección principal 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 del búfer durante el ensamblaje y la vinculación. Los diferentes sistemas son diferentes. En términos generales, la dirección de compensación es cero. La dirección del segmento se puede determinar al desmontar el programa en función del valor de los datos en el código de máquina correspondiente a la instrucción MOV AX y los datos.
(4) Ejecute el programa en depuración y verifique los resultados de la ejecución.
(5) Modifique los datos en el área de datos del búfer del programa fuente, vuelva a ensamblarlos antes de ejecutarlos y verifique el resultado.