Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para encontrar la raíz cuadrada de un número.
Ejemplo –
Suposiciones:
el número, cuya raíz cuadrada necesitamos encontrar, se almacena en la ubicación de memoria 2050 y almacena el resultado final en la ubicación de memoria 3050.
Algoritmo –
- Asigne 01 al registro D y E
- Cargue el valor, almacenado en la ubicación de memoria 2050 en el acumulador A
- Reste el valor almacenado en el acumulador A del registro D
- Compruebe si el acumulador tiene 0, si es cierto, vaya al paso 8
- Incrementar el valor del registro D en 2
- Incrementar el valor del registro E en 1
- Saltar al paso 3
- Mover el valor almacenado en el registro E en A
- Almacene el valor de A en la ubicación de memoria 3050
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO |
---|---|---|
2000 | MVI D, 01 | D <- 01 |
2002 | MVI E, 01 | E <- 01 |
2004 | LDA 2050 | A <- M[2050] |
2007 | SUB-D | A <- A – D |
2008 | JZ 2011 | Saltar si ZF = 0 a la ubicación de memoria 2011 |
200B | INR D | D <- D + 1 |
200C | INR D | D <- D + 1 |
200D | INR E | mi <- mi + 1 |
200E | JMP 2007 | Saltar a la ubicación de memoria 2007 |
2011 | MOV A, E | A <-E |
2012 | STA 3050 | A -> M[3050] |
2015 | HLT | FINAL |
Explicación – Registros utilizados A, D, E:
- MVI D, 01 – inicializa el registro D con 01
- MVI E, 01 – inicializa el registro E con 01
- LDA 2050: carga el contenido de la ubicación de memoria 2050 en el acumulador A
- SUB D – resta el valor de D de A
- JZ 2011: salte a la ubicación de memoria 2011 si se establece el indicador cero
- INR D: incrementa el valor del registro D en 1. Dado que se usa dos veces, el valor de D se incrementa en 2
- INR E – incrementa el valor del registro E en 1
- JMP 2007: salta a la ubicación de memoria 2007
- MOV A, E – mueve el valor del registro E en el acumulador A
- 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