Archivo de la categoría: programación en assembly

Programación en lenguaje máquina usando Assembly.

li, bne, j – assembly (numero primo)

El problema planteado se trata en determinar si un numero ingresado por teclado es o no primo

El siguiente programa hace uso de las instrucciones li, bne, j

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 determina si es o no primo un numero

  • 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, hace referencia a if (a != b)
  • La instrucción j, hace un salto a otro bloque

Descargue aquí 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: numero primo
Figura. programacion assembly: numero primo

EVALUAR APLICANDO
BUENAS PRÁCTICAS

Observe que este programa tiene una estructura repetitiva mientras y en ella una condición compuesta. Esta es una practica eficiente que permite la salida inmediata del ciclo cuando ya no sea necesario un nuevo recorrido.

[Tweet «»Si retorna true o false no lo pregunte en una condicional» #Tutorias ☺»]

Otra buena practica es usar variables de tipo booleano o lógicas y en las sentencias condicionales no preguntar a manera de comparación debido a que la unidad logica del computador con solo poner su nombre de variables en la sentencia condicional compara inmediatamente. Ej. SI(band) será lo mismo que SI(band == true)