An assembler is a translation tool with which mnemonic program lines are translated into machine codes. Since machine codes consist of long dual bit combinations and can therefore become confusing, they are listed in the hexadecimal system, especially since the program representation is very impractical and difficult to memorize.
The hexadecimal representation has the advantage that it is shorter; it nevertheless remains confusing and error-prone like the representation in the dual system. For this reason program codes are represented in easy to remember pseudo codes, the mnemonics. The assembler takes care of the translation of the mnemonic representation into machine code.
An assembler program is thus a machine- level programming language. It consists of a sequence of instructions that are translated into machine code by the assembler. The commands are easy-to-remember mnemonics such as "add", "sub", or "load". Each microprocessor has its own mnemonics and an assembler that is used to convert the numeric, rather cryptic notation of the machine code into the simplified mnemonic notation.
The assembler language is the fastest of all programming languages. It is used in particular with time-critical applications. Among the high-level languages, only the C programming language comes close to the speed of assembly language.