Archivo de la etiqueta: assembly

li, bne, j, add, abs – assembly (distancia entre dos personas)

El problema planteado se trata en hallar la distancia final entre dos personas que se acercan, después de leer continuamente los pasos dados. La distancia inicial es de cincuenta metros y paran de caminar al sobrepasarse mutuamente.

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

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 la distancia entre dos personas

  • 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
  • La instrucción add, efectúa una suma entre dos registradores o registrador valor
  • La instrucción abs, almacena en un registrador el valor absoluto de otro registrador

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: distancia entre personas
Figura. programacion assembly: distancia entre personas

EVALUAR APLICANDO
BUENAS PRÁCTICAS

En ocasiones es conveniente usar ciclos do – while. Estos ciclos permiten ahorrar una linea de código. Es bien claro que para usar un ciclo do – while como ciclo while, simplemente se agregan dos instrucciones de lectura, una antes del ciclo y la otra dentro del ciclo; pero con las estructura repetitiva do – while solo se establece una instrucción de lectura. Recuerde que en el ciclo do – while, las instrucciones dentro del ciclo se ejecutaran solo la primera vez sin necesidad de condicion.

[Tweet «»Soy un ciclo do-while; la primera entrada es VIP» #Tutorias ☺»]