/* * #include <stdio.h> * * int * main (void) * { * int i; * for (i = 0; i < 10; i++) * printf ("%d ", i); * return 0; * } */ .file "ex.c" .section .rodata .LC0: .string "%d " .text .globl main .type main, @function main: pushl %ebp movl %esp, %ebp andl $-16, %esp subl $32, %esp movl $0, 28(%esp) jmp .L2 .L3: movl $.LC0, %eax movl 28(%esp), %edx movl %edx, 4(%esp) movl %eax, (%esp) call printf addl $1, 28(%esp) .L2: cmpl $9, 28(%esp) jle .L3 movl $0, %eax leave ret .size main, .-main .ident "GCC: (GNU) 4.5.1" .section .note.GNU-stack,"",@progbits
.file "ex.c" .section .rodata .LC0: .string "%d " .text .globl main .type main, @function main: pushl %ebp movl %esp, %ebp andl $-16, %esp subl $32, %esp movl $0, 4(%esp) jmp .L2 .L3: movl $.LC0, %eax movl %eax, (%esp) call printf incl 4(%esp) .L2: cmpl $9, 4(%esp) jle .L3 movl $0, %eax leave ret .size main, .-main .ident "GCC: (GNU) 4.5.1" .section .note.GNU-stack,"",@progbitsThe first file has as comment the c program that generates it.
The second one is the same, but with some modifications that I made..
reducing the number of instructions and replacing an add
with an inc intruction. Assembly world is really fun!!
Oh yes.. I extend SH to get a poorly gas syntaxhighlighter (:
I guess this is my first real work with free community!!
here is the post announcement: http://alexgorbatchev.com/forums/viewtopic.php?f=2&t=77 and
here is the project page http://github.com/gkos/gas-brush
I'm felling really happy with this!! Maybe tomorrow I speak about downseq project (:
Cheers!
Nenhum comentário:
Postar um comentário