.file "hello.c" .def ___main; .scl 2; .type 32; .endef .data LC0: .ascii "Hello world\0" .globl _main .def _main; .scl 2; .type 32; .endef _main: pushl %ebp # save %ebp movl %esp, %ebp # copy stack pointer to %ebp for stack frame subl $8, %esp # leave space for 2 words andl $-16, %esp # align stack frame movl $0, %eax # clear %eax call __alloca # initialisation routines for runtime call ___main # initialisation routines for runtime subl $12, %esp # restore stack pushl $LC0 # load the address of the string call _puts # call routine to print it out movl %ebp, %esp # restore stack pointer popl %ebp # restore %ebp ret .def _puts; .scl 3; .type 32; .endef