YASM is a complete rewrite of the NASM assembler under the "new" BSD License (some portions are currently under the GNU General Public License (GPL) or the GNU Lesser General Public License (LGPL)). It is designed from the ground up to allow for multiple assembler syntaxes to be supported (eg, NASM, TASM, GAS, etc.) in addition to multiple output object formats. Another primary module of the overall design is an optimizer module.