document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. //Etiqueta con el string a imprimir.
  2. .LC0:
  3.     .string "%d\\n"
  4.     .text
  5. //Se declara main como una etiqueta global.
  6. //para que todos puedan accesar a ella
  7. .globl main
  8.     .type   main, @function
  9. main:
  10. //Instrucciones de inicio para reservar espacio
  11.     pushl   %ebp
  12.     movl    %esp, %ebp
  13.     subl    $32, %esp
  14. //Aqui asignamos 1, al registro 28(%esp), que
  15. //seria la variable i, o el contador del for
  16.     movl    $1, 28(%esp)
  17. //Brincamos a la etiqueta .L2
  18.     jmp .L2
  19. .L4:
  20. //Movemos el valor del registro a eax
  21.     movl    28(%esp), %eax
  22. //Y para saber si es par o impar le aplicamos
  23. //la operacion AND, y guardamos el resultado en eax
  24.     andl    $1, %eax
  25. //Lo comparamos con sigo mismo para saber si es 0(par)
  26.     testl   %eax, %eax
  27. //Si no es 0(jne = jump when not equal), brincamos a .L3
  28.     jne .L3
  29. //SI es 0, movemos el contenido de la etiqueta a eax
  30.     movl    $.LC0, %eax
  31. //Movemos el valor guardado en el registro 28(%esp) a edx
  32.     movl    28(%esp), %edx
  33. //Ahora movemos edx, el valor del registro, al offset 4 del stack
  34.     movl    %edx, 4(%esp)
  35. //Y movemos el string al inicio.
  36.     movl    %eax, (%esp)
  37. //Lo imprimimos
  38.     call    printf
  39. .L3:
  40.     addl    $1, 28(%esp)
  41. .L2:
  42. //Comparamos el registro que guarda el contador
  43. //con 10, para saber si volver a repetir el ciclo
  44.     cmpl    $10, 28(%esp)
  45. //Si el valor del registro es menor o igual a 10
  46. //brincamos a .L4
  47.     jle .L4
  48. //Si no es asi, termino el ciclo, entonces
  49. //liberamos el stack y terminamos
  50.     leave
  51.     ret
');