Aasm is an advanced modular assembler designed to support several target architectures. It has been designed to be easily extended. Its global architecture takes advantages of dynamic libraries to provide input, assembler and output modules. The input module supports Intel syntax (like nasm, tasm, masm, etc.). The x86 assembler module supports all opcodes up to P6 including MMX, SSE and 3DNow! extensions. F-CPU and SPARC assembler modules are under development. Several output modules are available for ELF, COFF, IntelHex, and raw binary formats. Advanced features include symbol scopes, an expressions engine, big integer support, macro capability, and numerous and accurate warning messages (over 300).