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 –
- Estamos tomando el primer elemento de la array en A
- 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
- 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
- LXI 2050 asigna 20 a H y 50 a L
- MOV C, M copia el contenido de la memoria (especificado por el par de registros HL) a C (esto se usa como contador)
- DCR C disminuye el valor de C en 1
- INX H aumenta el valor de HL en 1. Esto se hace para visitar la siguiente ubicación de memoria
- MOV A, M copia el contenido de la memoria (especificado por el par de registros HL) a A
- INX H aumenta el valor de HL en 1. Esto se hace para visitar la siguiente ubicación de memoria
- 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
- JNC 200D salta el contador de programa a 200D si lleva bandera = 0
- MOV A, M copia el contenido de la memoria (especificado por el par de registros HL) a A
- DCR C disminuye el valor de C en 1
- JNZ 2007 salta el contador del programa a 2007 si la bandera cero = 0
- STA 3050 almacena el valor de A en la ubicación de memoria 3050
- 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