Programa 8085 para encontrar máximo y mínimo de 10 números

Problema: escriba un programa en lenguaje ensamblador en un microprocesador 8085 para encontrar un máximo y un mínimo de 10 números. 

Ejemplo – 
 

Minimum: 01H,  Maximum: FFH

En la instrucción CMP: 
Si Acumulador > Registro, entonces se restablecen los indicadores de acarreo y cero 
. Si Acumulador = Registro, entonces se establece el indicador cero. 
Si Acumulador < Registro, entonces se establece el indicador de acarreo. 

Suposición: lista de números de 2050H a 2059H y salida a 2060H y 2061H. 

Algoritmo –  

  1. El número máximo se almacena en el registro B y el mínimo en el registro C
  2. Cargar contador en registro D
  3. Cargue el elemento inicial en el acumulador, registro B y C
  4. Comparar acumulador y registro B
  5. Si el indicador de acarreo no está configurado, transfiera el contenido del Acumulador a B. De lo contrario, compare el Acumulador con el registro C, si el indicador de acarreo está configurado, transfiera el contenido del Acumulador a C
  6. Registro de decremento D
  7. Si D>0, tome el siguiente elemento en Acumulador y vaya al punto 4
  8. Si D = 0, almacene el registro B y C en la memoria
  9. fin de programa

Programa- 

Dirección Etiqueta Instrucción Comentario
2000H   LXI H, 2050H Cargar la dirección inicial de la lista
2003H   MOV B, M Máximo de tienda
2004H   MOV C, M Almacenar mínimo
2005H   MVI D, 0AH Contador para 10 elementos
2007H CÍRCULO MOV A, M Recuperar elemento de lista en Acumulador
2008H   CMP B Comparar elemento con número máximo
2009H   JC MIN Saltar a MIN si no es máximo
200CH   MOV B, A Transferir contenidos de A a B como A > B
200DH MÍN. CMP C Comparar elemento con número mínimo
200EH   SALTAR JNC Saltar a SALTAR si no es mínimo
2011H   MOV C, A Transferir contenido de A a C si A < mínimo
2012H SALTAR INXH Incrementar la memoria
2013H   DCR D Contador de decrementos
2014H   BUCLE JNZ Saltar a LOOP si D > 0
2017H   LXI H, 2060H Cargar dirección para almacenar máximo
201AH   MOV M, B Mover máximo a 2060H
201BH   INXH Incrementar la memoria
201CH   MOV M, C Mover mínimo a 2061H
201DH   HLT Detener

Explicación – 

  1. Uno por uno, todos los elementos se comparan con el registro B y C.
  2. El elemento se compara con el máximo, si es mayor que el máximo, se almacena en el registro B. De lo contrario, se compara con el mínimo y, si es menor que el mínimo, se almacena en el registro C.
  3. El bucle se ejecuta 10 veces.
  4. Al final de 10 iteraciones, el máximo y el mínimo se almacenan en 2060H y 2061H respectivamente.

Publicación traducida automáticamente

Artículo escrito por aastha98 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 *