Problema: escriba un programa de lenguaje de nivel ensamblador para convertir un número BCD de 8 bits a su respectivo código ASCII.
Suposiciones –
Dirección inicial del programa: 2000 Ubicación de
la memoria de entrada: 2050
Ubicación de la memoria de salida: 3050 y 3051
Código ASCII para dígitos 0 – 9
Ejemplo –
Algoritmo –
- Ingrese el contenido de 2050 en el acumulador
- Mover el contenido del Acumulador al registro B
- Separe el dígito menos significativo usando AND con 0F y SUME 30 al acumulador
- Almacene el contenido del acumulador en la ubicación de memoria 3050
- Mover el contenido del registro B al Acumulador
- Separe el dígito más significativo usando AND con F0
- Rotar el contenido del acumulador 4 veces
- AGREGAR 30 al acumulador
- Almacene el contenido del acumulador en la ubicación de memoria 3051
Programa –
Dirección | Mnemotécnica | Comentarios |
---|---|---|
2000 | LDA 2050 | Un <- [2050] |
2003 | MOV B, A | B <- A |
2004 | AÑO 0F | A <- A y 0F |
2006 | IDA 30 | A <- A + 30 |
2008 | STA 3050 | [3050]<-A |
200B | MOV A, B | A <-B |
200C | ANI F0 | A <- A y F0 |
200E | RLC | Girar A a la izquierda |
200F | RLC | Girar A a la izquierda |
2010 | RLC | Girar A a la izquierda |
2011 | RLC | Girar A a la izquierda |
2012 | IDA 30 | A <- A + 30 |
2014 | STA 3051 | [3051]<-A |
2017 | HLT | Detener ejecución |
Explicación –
- LDA 2050 carga el contenido de la ubicación de memoria 2050 en el acumulador
- MOV B, A copia el contenido del acumulador al registro B
- ANI 0F Y el contenido del acumulador con datos inmediatos 0F
- ADI 30 AÑADIR 30 al acumulador
- STA 3050 almacena el contenido del acumulador en la ubicación de memoria 3050
- MOV A, B copia el contenido del registro B al acumulador
- ANI F0 Y el contenido del acumulador con datos inmediatos F0
- RLC rota el contenido del acumulador que queda sin llevar
- RLC rota el contenido del acumulador que queda sin llevar
- RLC rota el contenido del acumulador que queda sin llevar
- RLC rota el contenido del acumulador que queda sin llevar
- ADI 30 AÑADIR 30 al acumulador
- STA 3051 almacena el contenido del acumulador en la ubicación de memoria 3051
- HLT detiene la ejecución del programa
Publicación traducida automáticamente
Artículo escrito por Ankit_Bisht y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA