Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para convertir números grises en binarios.
Ejemplo –
Algoritmo –
- Cargue los datos de la dirección 2050 en A
- Mover los datos 07 en C
- Mover los datos de A a B
- Extraiga el MSB (bit más significativo) de los datos disponibles en A
- Girar los bits de A a la derecha
- Toma AND entre datos en A y 7F
- Tomar XOR entre los datos presentes en A y B
- Decrementa el contenido de C
- Si no se establece Zero Flag (ZF), vaya al paso 4; de lo contrario, vaya al paso 9
- Almacene el resultado en la dirección de memoria 3050
- Deténgase
Programa –
DIRECCIÓN DE MEMORIA | MNEMOTÉCNICA | COMENTARIO | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2000 | LDA 2050 | A <- 2050 | |||||||||||||||||||||
2003 | MVI C, 07 | C<-07 | |||||||||||||||||||||
2005 | MOV B, A | B <- A | |||||||||||||||||||||
2006 | ANI 80 | A = A Y 80 | 2008 | CRR | Girar A a la derecha sin llevar | 2009 | ANI 7F | A = A Y 7F | 200B | XRA B | A = A X O B | 200C | DCR C | do = do – 1 | 200D | JNZ 2008 | SALTAR a 2008 si ZF = 0 | 2011 | STA 3050 | 3050 <- A | 2014 | HLT | Deténgase |
Explicación-
- LDA 2050 se utiliza para cargar los datos de la dirección 2050 en A
- MVI C, 07 se usa para mover los datos 07 en C
- MOV B, A mueve los datos de A a B
- ANI 80 extrae el MSB (bit más significativo) de los datos disponibles en A
- RRC rota los bits de A a la derecha sin llevar
- ANI 7F se usa para tomar AND entre datos en A y 7F
- XRA B toma XOR entre los datos presentes en A y B
- DCR C se utiliza para disminuir el contenido de C
- JNZ 2008 se usa para saltar a la dirección 2008 si ZF = 0
- STA 3050 se utiliza para almacenar el resultado en la dirección de memoria 3050
- HLT se utiliza para finalizar el programa
Publicación traducida automáticamente
Artículo escrito por harshit-chhabra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA