Programa 8085 para contar números impares totales en series de 10 números

Programa: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para contar números impares en series de 10 números.

Ejemplo –

Suposición: se almacenan diez números de 8 bits desde la ubicación de memoria inicial 2050. El valor de conteo se almacena en la ubicación de memoria 3050.

Algoritmo –

  1. Inicialice el registro H con 20 y el registro L con 4F para que la memoria indirecta apunte a la ubicación de memoria 204F.
  2. Inicialice el registro C con 00 y el registro D con 0A.
  3. Incrementa la memoria indirecta en 1.
  4. Almacene el valor de M en el acumulador A.
  5. Compruebe si el contenido de A es par o impar realizando la operación AND de A con 01.
  6. Si el contenido de A es 01 después de la operación AND, entonces el número escaneado fue impar. Si es así, incremente C en 01; de lo contrario, si el contenido de A es 00 después de la operación AND, entonces el número escaneado fue par. Disminuye D en 01.
  7. Verifique si el indicador cero no está configurado, es decir, ZF = 0, luego salte al paso 3; de lo contrario, almacene el valor de C en la ubicación de memoria 3050.

Programa –

DIRECCIÓN DE MEMORIA MNEMOTÉCNICA COMENTARIO
2000 LXI H 204F H <- 20, L <- 4F
2003 MVI C, 00 C <- 00
2005 MVI D, 0A D <- 0A
2007 INXH METRO <- METRO + 01
2008 MOV A, M A <-M
2009 AÑO 01 A <- A (Y) 01
200B JZ 200F Saltar si ZF = 1
200E INR C C <- C+ 01
200F DCR D D <- D – 01
2010 JNZ 2007 Saltar si ZF = 0
2013 MOV A, C A <-C
2014 STA 3050 M[3050] <- A
2017 HLT FINAL

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

  1. LXI H 204F: asigne 20 a H y 4F a L.
  2. MVI C, 00: asigna 00 a C.
  3. MVI D, 0A: asigna 0A a D.
  4. INX H: incrementa la ubicación de memoria indirecta M en 01.
  5. MOV A, M: mueve el contenido de M a A.
  6. ANI 01: realiza la operación AND de A con 01 y almacena el resultado en A.
  7. JZ 200F: salta si ZF = 1 a la ubicación de memoria 200F.
  8. INR C: incrementa C en 01.
  9. DCR D: decrementa D en 01.
  10. JNZ 2007: salta si ZF = 0 a la ubicación de memoria 2007.
  11. MOV A, C: mueve el contenido de C a A.
  12. STA 3050: almacene el contenido de A en la ubicación de memoria 3050.
  13. 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 *