8085 programa para contar el número de elementos que son menos de 0A

Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para contar la cantidad de elementos que son menores que 0A en una serie de 10 números.

Ejemplo –

Suposición: la serie de 10 números se almacena 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 01.
  4. Mueva el contenido de M en el acumulador A.
  5. Compare el contenido de A con 0A con la ayuda de la instrucción CPI . Esta instrucción actualizará las banderas de 8085.
  6. Verifique si el indicador de acarreo está establecido, si es verdadero, incremente el contenido de C en 01.
  7. Contenido decrementado de D por 01.
  8. Compruebe si se restablece el indicador cero, si es verdadero, vaya al paso 3.
  9. Mueva el contenido de C a A.
  10. Almacene el contenido de A 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 IPC 0A A-0A
200B JNC 200F Saltar si CY = 0
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, C, D, H, L se utilizan para fines generales.

  1. LXI H 204F: asigna 20 al registro H y 4F al registro L
  2. MVI C, 00: asigna 00 al registro C
  3. MVI D, 0A: asigna 0A al registro D
  4. INX H: incrementa la ubicación de la memoria indirecta en 01
  5. MOV A, M: mueve el contenido de la ubicación de memoria indirecta M al acumulador A
  6. CPI 0A: resta 0A del contenido de A y actualiza las banderas de 8085
  7. JNC 200F: salta a la ubicación de memoria 200F si CY = 0
  8. INR C: incrementa el contenido de C en 01
  9. DCR D: decrementar el contenido de D en 01
  10. JNZ 2007: salta a la ubicación de memoria 2007 si ZF = 0
  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 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 *