Programa 8085 para acceder e intercambiar el contenido del registro Flag con el registro B

Problema: escriba un programa en lenguaje ensamblador en el microprocesador 8085 para acceder al registro de bandera e intercambiar el contenido del registro de bandera F con el registro B. 

Ejemplo – 

Suposiciones: los valores iniciales del registro de bandera, el registro B y el puntero de pila son 00, 3F y 3FFF, respectivamente. 

PSW significa PALABRA DE ESTADO DEL PROGRAMA . PSW combina el acumulador A y el registro de bandera F. 

Algoritmo – 
 

  1. Empuje el valor de la pila en memoria de PSW con la ayuda de la instrucción  PUSH
     
  2. Extraiga el valor del registro Flag y guárdelo en el registro H con la ayuda de la instrucción  POP
     
  3. Mueva el valor del registro L en el registro C [H -> VALOR ACUMULADOR, L-> VALOR REGISTRO BANDER]
     
  4. Mover el valor del registro B en el registro L 
     
  5. Mover el valor del registro C en el registro B 
     
  6. Empuje el valor del registro H en la pila de memoria con la ayuda de la instrucción  PUSH
     
  7. Extraiga el valor de PSW de la pila de memoria usando la instrucción  POP
     

Programa – 

MVI B , 3FH
PUSH PSW
POP H
MOV C , L
MOV L , B
MOV B , C
PUSH H
POP PSW
HLT
DIRECCIÓN DE MEMORIA MNEMOTÉCNICA COMENTARIO
2000 PUSH PSW Empuje el valor del acumulador y la bandera en la pila
2001 POP H Valor emergente de la parte SUPERIOR de la pila de memoria en H
2002 MOV C, L C <- L
2003 MOV H, L L <- B
2004 MOV B, L B <-C
2005 EMPUJAR H Empuje el valor del registro H
2006 PSW POP Valor pop del registro de bandera y acumulador
2007 HLT FINAL

Explicación – Registros utilizados A, B, C, H, F 

  1. La instrucción PUSH PSW realiza la siguiente tarea: 
     
    SP <- SP - 1
    M[SP] <- A
    SP <- SP - 1
    M[SP] <- F
  1. La instrucción  POP H realiza la siguiente tarea:
     
    H <- M[SP]
    SP <- SP + 1
  1. MOV C, L: mueve el valor de L en el registro C, ya que sabemos que H contiene el valor del acumulador y L contiene el valor del registro de bandera. 
     
  2. MOV L, B: mueve el valor de B en el registro L, por lo tanto, L se actualiza 
     
  3. MOV B, C: mueve el valor de C en el registro B, por lo tanto, B se actualiza 
     
  4. PUSH H realiza la siguiente tarea: 
     
    SP <- SP - 1
    M[SP] <- H
  1. POP PSW realiza la siguiente tarea: 
     
 
    F <- M[SP]
    SP <- SP + 1
    A <- M[SP]
    SP <- SP + 1
  1. 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

Deja una respuesta

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