Red de conocimiento informático - Conocimiento sistemático - Métodos de diseño y depuración de programas ensambladores.

Métodos de diseño y depuración de programas ensambladores.

Encuentre los valores mínimo y máximo del bloque de datos.

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

Fragmento de código

Asumir CS: código, DS: datos, ES: datos, SS: pila

Iniciar el proceso

Publicación

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

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.