19 Jul

For en Ensamblador

Hace ya un tiempo que puedo afirmar que controlo mi primer lenguaje de bajo nivel, el ensamblador. He hecho ya unos cuantos programas en lenguaje ensamblador pero no he explicado en este blog casi nada relacionado con este lenguaje de programación.

En su momento ya expliqué la estructura que debe tener un programa en ensamblador así que me limitaré a ir definiendo los bucles y otras estructuras interesantes.En este post le toca al clásico for, la verdad que se una simple linea se agranda bastante pero es normal al ser de uno de alto nivel y otro de bajo.

For en C

for(i=0;i<16;i++) {
  ...
}

For en Ensamblador

  movl $0,%eax
_for:
  cmpl $16,%eax
  jge fin
  ...
  incl %eax
  jmp _for
fin:

En este caso también se puede usar el registro %ecx que se usa para los bucles y reduce algo el código, pero solo será adecuado usarlo en algunos casos ya que lo que hace es ir descontando el número de veces que se tienen que realizar hasta llegar a 0.

For en Ensamblador usando el registro %ecx

  movl $16,%ecx
_for:
  ...
  loop _for

Se que esta no es la mejor manera ya que solos los que estén algo iniciados en ensamblador podrán entender algo de lo que estoy hablando pero me he propuesto responder a las búsquedas que llegan de Google ya que son muchos los que buscan sobre estos temas y no hay buena documentación en internet.

Si sois totalmente novatos y os cuesta seguir comprended que no puedo liarme a explicar todos los comandos, direccionamientos y funciones, ya que sino este blog acabaría convirtiéndose en exclusivo para Ensamblador. De todas formas os dejo un sitio donde hacen una pequeña introducción al lenguaje, el tutorial va dedicado a otro asunto pero para comprender el funcionamiento básico es más que suficiente.

¿Y tu qué opinas?

Los comentarios en mayúsculas y tipo SMS serán borrados. Puedes usar Markdown para dar formato a los comentarios.