Programa 8085 para verificar si ambos nibbles del número de 8 bits son iguales o no

Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para verificar si los dos nibbles del número de 8 bits son iguales o no. Si los nibbles son iguales, almacene 00 en la ubicación de memoria 3050; de lo contrario, almacene FF en la ubicación de memoria 3050.

Ejemplo –

Suposición: el número, para comprobar si hay nibbles similares, se almacena en la ubicación de memoria 2050.

Algoritmo –

  1. Cargue el contenido de la ubicación de memoria 2050 en A.
  2. Mueve el contenido de A en B.
  3. Enmascare el nibble inferior y guárdelo en el registro C.
  4. Mueva el contenido de B en A.
  5. Enmascare el nibble de orden superior y guárdelo en A.
  6. Invierta el contenido de A usando la instrucción RLC 4 veces.
  7. Compare los contenidos de A y C con la ayuda de la instrucción CMP . Actualizar las banderas de 8085.
  8. Ahora almacene FF si ZF = 0, de lo contrario almacene 00 si ZF = 1.
  9. Almacene el resultado final en la ubicación de memoria 3050.

Programa –

DIRECCIÓN DE MEMORIA MNEMOTÉCNICA COMENTARIO
2000 LDA 2050 A <- M[2050]
2003 MOV B, A B <- A
2004 AÑO 0F A <- A (Y) 0F
2006 MOV C, A C <- A
2007 MOV A, B A <-B
2008 ANI F0 A <- A (Y) 0F
200A RLC Rotar el contenido de A a la izquierda un bit sin llevar
200B RLC Rotar el contenido de A a la izquierda un bit sin llevar
200C RLC Rotar el contenido de A a la izquierda un bit sin llevar
200D RLC Rotar el contenido de A a la izquierda un bit sin llevar
200E CMP C A-C
200F JZ 2018 Saltar si ZF = 1
2013 MVI A, FF A <-FF
2015 JMP 201A Saltar a la ubicación de memoria 201A
2018 MVI A, 00 A <- 00
201A STA 3050 M[3050] <- A
201D HLT FINAL

Explicación: los registros A, B y C se utilizan para fines generales.

  1. LDA 2050: cargue el contenido de la ubicación de memoria 2050 en el acumulador A.
  2. MOV B, A: mueve el contenido de A en el registro B.
  3. ANI 0F: realiza la operación AND en los contenidos de A y 0F. Almacene el resultado en A.
  4. MOV C, A: mueve el contenido de A en el registro C.
  5. MOV A, B: mueve el contenido de B en A.
  6. ANI F0: realiza la operación AND en los contenidos de A y F0. Almacene el resultado en A.
  7. RLC: rota el contenido de A hacia la izquierda un bit sin acarreo. Usa la instrucción 4 veces para invertir el número.
  8. CMP C: compara el contenido de A y C. Actualice las banderas de 8085 en consecuencia.
  9. JZ 2018: salta a la ubicación de memoria 2018 si se establece el indicador cero.
  10. MVI A, FF: asigna FF a A.
  11. JMP 201A: salta a la ubicación de memoria 201A.
  12. MVI A, 00: asigna 00 a A.
  13. STA 3050: almacene el contenido de A en la ubicación de memoria 3050.
  14. HLT: deja de ejecutar el programa y detiene cualquier ejecución posterior.

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 *