El problema planteado es el siguiente: Determinar los números perfectos entre el 1 y el 500. Un numero es perfecto si la suma de sus divisores(excluido el) es igual al numero. Ej: 6 = 3 + 2 + 1
El siguiente programa hace uso de las instrucciones li, bne, move, div, mfhi
LBN: Lenguaje de Bajo Nivel (programación mas cerca del hardware, de los circuitos, de los componentes, de las cosas).
Programar a bajo nivel significa andar de la mano con su hardware, entender cada valor que almacene su programa a donde va a parar en su disco duro (direccion exacta en memoria).
Este programa en código Assembly calcula los números perfectos entre el 1 y el 500.
- La instrucción li, hace una carga a un registrador normalmente para indicar una acción al sistema mediante una llamada syscall o simplemente cargar un entero
- La instrucción bne, tiene la funcionalidad de: if(a != b)
- La instrucción move, mueve un valor de registrador a registrador
- La instrucción div, efectuar una división
- La instrucción mfhi, captura el modulo de una división
Descargue aqui el codigo assembly completo de este ejercicio.
Quiero hacer este programa… Pero ¿Cómo funciona?
La ejecución paso a paso del programa la puede ver en la