Programa 8085 para convertir números BCD de 8 bits en código ASCII

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 –  

  1. Ingrese el contenido de 2050 en el acumulador 
     
  2. Mover el contenido del Acumulador al registro B 
     
  3. Separe el dígito menos significativo usando AND con 0F y SUME 30 al acumulador 
     
  4. Almacene el contenido del acumulador en la ubicación de memoria 3050 
     
  5. Mover el contenido del registro B al Acumulador 
     
  6. Separe el dígito más significativo usando AND con F0 
     
  7. Rotar el contenido del acumulador 4 veces 
     
  8. AGREGAR 30 al acumulador 
     
  9. 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 – 

  1. LDA 2050 carga el contenido de la ubicación de memoria 2050 en el acumulador 
     
  2. MOV B, A copia el contenido del acumulador al registro B 
     
  3. ANI 0F Y el contenido del acumulador con datos inmediatos 0F 
     
  4. ADI 30 AÑADIR 30 al acumulador 
     
  5. STA 3050 almacena el contenido del acumulador en la ubicación de memoria 3050 
     
  6. MOV A, B copia el contenido del registro B al acumulador 
     
  7. ANI F0 Y el contenido del acumulador con datos inmediatos F0 
     
  8. RLC rota el contenido del acumulador que queda sin llevar 
     
  9. RLC rota el contenido del acumulador que queda sin llevar 
     
  10. RLC rota el contenido del acumulador que queda sin llevar 
     
  11. RLC rota el contenido del acumulador que queda sin llevar 
     
  12. ADI 30 AÑADIR 30 al acumulador 
     
  13. STA 3051 almacena el contenido del acumulador en la ubicación de memoria 3051 
     
  14. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *