Programa en lenguaje ensamblador para encontrar el número más grande en una array

Problema: determine el número más grande en una array de n elementos. El valor de n se almacena en la dirección 2050 y la array comienza en la dirección 2051. El resultado se almacena en la dirección 3050. La dirección inicial del programa se toma como 2000.

Ejemplo –

Algoritmo –

  1. Estamos tomando el primer elemento de la array en A
  2. Comparando A con otros elementos de la array, si A es más pequeño, almacene ese elemento en A; de lo contrario, compare con el siguiente elemento
  3. El valor de A es la respuesta.

Programa –

Dirección de memoria Mnemotécnica Comentario
2000 LXI H 2050 H←20, L←50
2003 MOV C, M C←M
2004 DCR C C←C-01
2005 INXH HL←HL+0001
2006 MOV A, M A←M
2007 INXH HL←HL+0001
2008 CMP M SOY
2009 JNC 200D Si Carry Flag=0, vaya a 200D
200C MOV A, M A←M
200D DCR C C←C-1
200E JNZ 2007 Si Zero Flag=0, vaya a 2007
2011 STA 3050 A→3050
2014 HLT

Explicación – Registros utilizados: A, H, L, C

  1. LXI 2050 asigna 20 a H y 50 a L
  2. MOV C, M copia el contenido de la memoria (especificado por el par de registros HL) a C (esto se usa como contador)
  3. DCR C disminuye el valor de C en 1
  4. INX H aumenta el valor de HL en 1. Esto se hace para visitar la siguiente ubicación de memoria
  5. MOV A, M copia el contenido de la memoria (especificado por el par de registros HL) a A
  6. INX H aumenta el valor de HL en 1. Esto se hace para visitar la siguiente ubicación de memoria
  7. CMP M compara A y M restando M de A. El indicador de acarreo y el indicador de signo se establecen si AM es negativo
  8. JNC 200D salta el contador de programa a 200D si lleva bandera = 0
  9. MOV A, M copia el contenido de la memoria (especificado por el par de registros HL) a A
  10. DCR C disminuye el valor de C en 1
  11. JNZ 2007 salta el contador del programa a 2007 si la bandera cero = 0
  12. STA 3050 almacena el valor 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 AnmolAgarwal 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 *