Red de conocimientos turísticos - Conocimientos sobre calendario chino - Utilice la herramienta de diseño en lenguaje ensamblador MASM para diseñar programas simples en lenguaje ensamblador y ejecutarlos para depurarlos

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.