First step of building an executable is compiling (or assembling) object file from the source:
For nasm example:
$ nasm -f elf hello.asm |
For gas example:
$ as -o hello.o hello.S |
This makes hello.o object file.
Second step is producing executable file itself from the object file by invoking linker:
$ ld -s -o hello hello.o |
This will finally build hello executable.
Hey, try to run it... Works? That's it. Pretty simple.