The most important tool for assembly language programming is the assembler, the
software that converts assembly language code into machine language.
Two very different assemblers are available for FreeBSD. One is as(1), which uses the
traditional UNIX® assembly language syntax. It comes
with the system.
The other is /usr/ports/devel/nasm. It uses the Intel
syntax. Its main advantage is that it can assemble code for many operating systems. It
needs to be installed separately, but is completely free.
This chapter uses nasm syntax because most assembly
language programmers coming to FreeBSD from other operating systems will find it easier
to understand. And, because, quite frankly, that is what I am used to.
The output of the assembler, like that of any compiler, needs to be linked to form an
executable file.
The standard ld(1) linker comes
with FreeBSD. It works with the code assembled with either assembler.