Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para encontrar el cuadrado de un número de 8 bits.
Ejemplo –
Suposición: las direcciones de los datos de entrada y salida son 2050 y 3050 respectivamente.
Enfoque: combine el contenido de los registros H y L, el contenido resultante se puede usar para apuntar indirectamente a la ubicación de la memoria y esa ubicación de la memoria se especifica mediante M. Para encontrar el cuadrado de cualquier número, siga sumando ese número en el acumulador A que inicialmente contiene 0 por ese número de veces cuyo cuadrado necesitamos encontrar.
Algoritmo –
- Asigne 20 al registro H, 50 al registro L y 00 al acumulador A
- Cargue el contenido de la ubicación de la memoria que está especificado por M en el registro B
- Agregue el contenido de M en el acumulador A y disminuya el valor de B en 01
- Verifique si B contiene 00, si es verdadero, almacene el valor de A en la ubicación de memoria 3050; de lo contrario, vaya al paso 3
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO |
---|---|---|
2000 | MVI H 20 | H <- 20 |
2002 | MVI L 50 | L <- 50 |
2004 | MVI A 00 | A <- 00 |
2006 | MOV B, M | B <-M |
2007 | AGREGAME | A <- A + M |
2008 | DCR B | B <- B – 01 |
2009 | JNZ 2007 | Saltar si ZF = 0 |
200C | STA 3050 | M[3050] <- A |
200F | HLT | FINAL |
Explicación – Registros utilizados A, H, L, B y memoria indirecta M:
- MVI H 20 – inicializa el registro H con 20
- MVI L 50 – inicializa el registro L con 50
- MVI A 00 – inicializar el acumulador A con 00
- MOV B, M: mueve el contenido de la ubicación de la memoria que está indirectamente especificado por M en el registro B
- ADD M: agrega el contenido de la ubicación de la memoria que está indirectamente especificada por M en el acumulador A
- DCR B: decrementa el valor del registro B en 1
- JNZ 2007: salta a la ubicación de memoria 2007 si ZF = 0, es decir, el registro B no contiene 0
- STA 3050: almacena el valor de A en 3050
- HLT: deja de ejecutar el programa y detiene cualquier ejecución adicional
Publicación traducida automáticamente
Artículo escrito por AmishTandon y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA