Red de conocimiento informático - Conocimiento sistemático - ¿Cuáles son los pasos para la programación en lenguaje ensamblador? ¿Cuáles son los pasos para la programación en lenguaje ensamblador?

¿Cuáles son los pasos para la programación en lenguaje ensamblador? ¿Cuáles son los pasos para la programación en lenguaje ensamblador?

Pasos de programación en lenguaje ensamblador:

1. Analizar el problema y abstraer el modelo de datos que describe el problema.

2. problema

3. Dibujar un diagrama de flujo o diagrama de estructura

4. Asigne memoria y unidades de trabajo (registros)

5. /p>

6. Inspección estática, ejemplo de depuración de computadora: programación para encontrar la puntuación más alta de los candidatos, suponiendo que todas las puntuaciones de los candidatos se hayan almacenado en la memoria de la computadora

1. condiciones, características y reglas → modelo matemático Se han dado las puntuaciones en este ejemplo. Es un conjunto de números enteros entre 0 y 200 (considerando sumar puntos de prueba), registrado como {S}, y encuentre max {S} (Nota: simple las preguntas no necesariamente deben escribirse como modelos matemáticos)

2. Determine la idea del algoritmo. Es mejor utilizar algoritmos y métodos de programación ya preparados. De lo contrario, debe resumir las ideas del algoritmo basándose en la práctica. experiencia

Como en este ejemplo, mire hacia abajo desde el primer puntaje en la transcripción, compare mientras lee y recuerde los más importantes. Para puntajes altos, descarte los puntajes más bajos hasta que termine de leer y conserve los más altos. puntuación en su mente

Idea de algoritmo resumido: establezca un puntero de datos y apunte a la primera dirección del área de datos

Obtenga el primer número en el registro (como AL), compare con el siguiente número, si el siguiente número es mayor, llévelo al registro; de lo contrario, ajuste el puntero y luego compárelo con el siguiente número, repita el proceso anterior hasta que se complete la comparación, la puntuación más alta en el registro

Utilice la instrucción MOV para leer la puntuación, la instrucción CMP para comparar y la instrucción de transferencia condicional para analizar y juzgar.

3. Dibujar diagramas de flujo o diagramas estructurales incluye flujo lógico, flujo de algoritmo, flujo de programa, etc., que son complicados. El problema requiere dibujar una estructura de módulo.

Este ejemplo es simple y solo dibuja el diagrama de flujo del programa (representado por el diagrama de flujo N-S de la estructura modular). : La inicialización en el diagrama de flujo N-S de este ejemplo incluye: configurar un contador y configurar El número de fracciones se reduce en uno y se envía al contador. Cada comparación se reduce en uno hasta que la búsqueda finaliza en cero; al área de datos

Iniciar la inicialización y llevar el primer número al registro y comparar el siguiente número con el siguiente. Ya sea para llevar un número grande al registro para modificar el puntero, reducir el número de conteo en uno y regresar al comienzo del cuerpo del bucle, hasta que el número de conteo sea 0 y salir del final del bucle

4. Asigne espacio de memoria y unidad de trabajo (registro) para definir el segmento de datos y los segmentos de pila, segmentos de código, etc.

Las unidades de trabajo generalmente usan registros

Este ejemplo: coloque la fracción en el segmento de datos, cree un espacio de pila de 100 bytes, BX se usa como puntero de datos, CX se usa como contador y AL se coloca Puntuación más alta

5 Escriba el programa elemento por elemento DATASEGMENTFENDB85, 90. , 60, 75, 87, 35, 80, 78, 96, 82; guardar la puntuación MAXDB?; guardar la puntuación más alta DATAENDSSTACKSEGMENTPARASTACK'STACK'DB100DUP(?) ; Pila de 100 bytes STACKENDSCODESEGMENTASSUMECS: CODE, DS: DATA, SS: STACKSTARTPROCFARPUSHDSMOVAX, 0PUSHAX; para devolver DOSMOVAX, DATAMOVDS, AX; establezca el registro de segmento de datos MOVBX, OFFSETFEN; establezca el puntero de datos MOVCX, MAX-FEN; compare N puntuaciones N-1 veces MOVAL, [ BX]; toma la primera puntuación LOP: INCBX; ajusta el puntero CMPAL, [BX]; compara con el siguiente número JAENEXT; disminuye en uno; si no es cero, recurra a LOPMOVMAX, AL; almacene el puntaje más alto RET; regrese a DOSSTARTENDPCODEENDSENDSTART6, verifique estáticamente y use la menor cantidad de bytes posible para la depuración de la computadora para acelerar la velocidad de ejecución

Céntrese en áreas propensas a errores, como el número de comparaciones, condiciones de transferencia, etc.

Solo se puede realizar la depuración después de asegurarse de que no hay errores