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

main.asm

        extern puts
        global main

        section .rodata
msg:    db "Hello World!", 0

        section .text
main:
        ;;  puts (msg)
        push msg
        call puts
        add esp, 4

        ;;  return 0
        mov eax, 0
        ret

build instructions

nasm -f elf32 -o main.o main.asm
gcc -m32 -o main main.o