AML is an implementation of a basic register machine coded in C++. It provides all of the rudimentary features of any machine language like basic I/O and arithmetic but provides a very easy syntax and its own portable binary compression scheme for storing files. AML is currently distributed on SunOS 5.5, Linux 2.2, and Win32 console.
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).
Flat Assembler is a fast and efficient self-assembling 80x86 assembler. It supports x86 and x86-64 instruction sets with MMX, 3DNow!, SSE up to SSE4, AVX, AVX2, and XOP extensions. It can produce output in binary, MZ, PE, COFF, or ELF format. It includes powerful but easy-to-use macroinstruction support and does multiple passes to optimize the instruction codes for size. It is written entirely in assembly language.
KMD is a multi-processor debugger. It can debug with hardware boards over serial ports or with software emulators (ARM and MIPS emulators are included in the project). Using the pipe option you can debug over the network or any other communication medium. It can load many executable formats such as ELF, and display and follow the original source even from multiple source file programs. There is support for breakpoints and watchpoints which can trap on specific data (such as loading or executing specific instructions). Support for other features such as FPGA's is also available, allowing loading or any control required to drive a specific hardware device. The project uses chump to allow disassembly and line assembly. Chump also allows new architectures to be easily added without the need to recompile the system. Communication with the backend is done using two pipes/fifos using a simple set of codes. Back end communication program can be created using very little memory on the target device.