Archivo de la etiqueta: assembly

li, bne, move, div, mfhi – assembly (numeros perfectos)

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.

Reto

Quiero hacer este programa… Pero ¿Cómo funciona?

La ejecución paso a paso del programa la puede ver en la

Simulación

ESCUCHANDO


Suscribete a nuestro canal

AMPLIAR ESCUCHANDO

programacion assembly: numeros perfectos
Figura. programacion assembly: numeros perfectos