Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Etiqueta con el contenido a imprimir cuando el
- //número es impar
- .impresion_impar:
- .string "Impar: %d\n"
- //Etiqueta con el contenido a imprimir cuando el
- //númnero es par
- .impresion_par:
- .string "Par: %d\n"
- .text
- .globl main
- .type main, @function
- main:
- pushl %ebp
- movl %esp, %ebp
- subl $32, %esp
- //Registro que servira de contador
- movl $1, 28(%esp)
- //Brincamos a la etiqueta .for_comparacion
- jmp .for_comparacion
- .for:
- //Movemos el contenido del contador a eax
- movl 28(%esp), %eax
- //Le aplicamos la operacion and para saber si es par
- andl $1, %eax
- testl %eax, %eax
- //Si no es par, lo mandamos a la etiqueta .no_par
- jne .no_par
- //Si es par, realizamos las operaciones para imprimirlo
- //usando el string de la etiqueta .impresion_par y
- //sumamos 1 al coontador
- movl $.impresion_par, %eax
- movl 28(%esp), %edx
- movl %edx, 4(%esp)
- movl %eax, (%esp)
- call printf
- addl $1, 28(%esp)
- .no_par:
- //Imprimimos el contenido de la etiqueta .impresion_impar
- //usando el contenido del registro
- movl $.impresion_impar, %eax
- movl 28(%esp), %edx
- movl %edx, 4(%esp)
- movl %eax, (%esp)
- call printf
- //Agregamos 1 al contador y brincamos a la comparacion
- addl $1, 28(%esp)
- jmp .for_comparacion
- .for_comparacion:
- //Comparamos el valor del registro que usamos como contador
- //con 20
- cmpl $20, 28(%esp)
- //Si es menor o igual, repetimos el ciclo
- jle .for
- //Si no, liberamos el stack, y terminamos
- leave
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement