program 001 - Hello World with C library
architecture x86-32
assembler gas

main.s

        .extern puts
        .globl main

        .section .rodata
msg:    .asciz "Hello World!"

        .section .text
main:
        ##  puts (msg)
        pushl $msg
        call puts
        addl $4, %esp

        ##  return 0
        movl $0, %eax
        ret

build instructions

gcc -m32 -o main main.s