Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para convertir un número BCD de 8 bits en un número hexadecimal.
Suposiciones: suponga que la dirección inicial del programa es 2000, las ubicaciones de memoria de entrada, 2050, 2051 y la ubicación de memoria de salida es 2052.
Ejemplo –
INPUT: 2050:02H 2051: 09H OUTPUT:2052: 1DH
Algoritmo –
- Inicializar puntero de memoria a 2050
- Obtener el dígito más significativo
- Multiplique el MSD por 10 usando la suma repetida
- Agregue LSD al resultado obtenido en el paso anterior
- Almacene el resultado convertido en la memoria 2052
Programa –
Dirección de memoria | Mnemotécnica | Comentarios |
---|---|---|
2000 | LXIH, 2050 | |
2003 | MOV A, M | A<-M |
2004 | AGREGA UN | A<-A+A |
2005 | MOV B, A | B<-A |
2006 | AGREGA UN | A<-A+A |
2007 | AGREGA UN | A |
2008 | AÑADIR B | A<-A+B |
2009 | INXH | |
200A | AGREGAME | A<-A+M |
200B | INXH | |
200C | MOV M, A | M<-A |
200D | HLT | TERMINAR EL PROGRAMA |
Explicación: los registros H, L, B, A se utilizan para fines generales.
- LXI H, 2050: cargará el registro par HL con la dirección 2050 de ubicación de memoria.
- MOV A, M: copia el contenido de la memoria en el registro A.
- ADD A: agrega el contenido del acumulador consigo mismo.
- MOV B, A: mueve el contenido del acumulador al registro B.
- ADD A: agrega el contenido del acumulador consigo mismo.
- ADD A: agrega el contenido del acumulador consigo mismo.
- ADD B: agrega el contenido del acumulador con el registro B y almacena el resultado en el acumulador.
- INX H: par de registros incrementales HL.
- ADD M: agrega el contenido del acumulador con memoria y almacena el resultado en el acumulador.
- INX H: par de registros incrementales HL.
- MOV M, A: copia el contenido del acumulador en la memoria.
- HLT: deja de ejecutar el programa y detiene cualquier ejecución posterior.
Publicación traducida automáticamente
Artículo escrito por Akashkumar17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA