Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Etiqueta con el string a imprimir.
- .LC0:
- .string "%d\n"
- .text
- //Se declara main como una etiqueta global.
- //para que todos puedan accesar a ella
- .globl main
- .type main, @function
- main:
- //Instrucciones de inicio para reservar espacio
- pushl %ebp
- movl %esp, %ebp
- subl $32, %esp
- //Aqui asignamos 1, al registro 28(%esp), que
- //seria la variable i, o el contador del for
- movl $1, 28(%esp)
- //Brincamos a la etiqueta .L2
- jmp .L2
- .L4:
- //Movemos el valor del registro a eax
- movl 28(%esp), %eax
- //Y para saber si es par o impar le aplicamos
- //la operacion AND, y guardamos el resultado en eax
- andl $1, %eax
- //Lo comparamos con sigo mismo para saber si es 0(par)
- testl %eax, %eax
- //Si no es 0(jne = jump when not equal), brincamos a .L3
- jne .L3
- //SI es 0, movemos el contenido de la etiqueta a eax
- movl $.LC0, %eax
- //Movemos el valor guardado en el registro 28(%esp) a edx
- movl 28(%esp), %edx
- //Ahora movemos edx, el valor del registro, al offset 4 del stack
- movl %edx, 4(%esp)
- //Y movemos el string al inicio.
- movl %eax, (%esp)
- //Lo imprimimos
- call printf
- .L3:
- addl $1, 28(%esp)
- .L2:
- //Comparamos el registro que guarda el contador
- //con 10, para saber si volver a repetir el ciclo
- cmpl $10, 28(%esp)
- //Si el valor del registro es menor o igual a 10
- //brincamos a .L4
- jle .L4
- //Si no es asi, termino el ciclo, entonces
- //liberamos el stack y terminamos
- leave
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement