Assembly is the low level language for a system that uses CPU instructions directly. Every system can have its own way of doing this, so there's usually a higher-level abstraction, like C or C++, that is used instead. A C or C++ compiler will first translate the C/C++ code to assembly, which will then be compiled into a binary.

Assembly is very powerful, but also quite complicated to write in. It requires knowledge of the CPU's instruction set, as well as the system's architecture.

An assembly language program is stored as text (just as a higher level
language program). Each assembly instruction represents exactly one machine
instruction. For example, the addition instruction described above
would be represented in assembly language as:
add eax, ebx
Here the meaning of the instruction is much clearer than in machine code.
The word add is a mnemonic for the addition instruction. The general form
of an assembly instruction is:
memonic operand(s)
An assembler is a program that reads a text file with assembly instructions
and converts the assembly into machine code. Compilers are programs
that do similar conversions for high-level programming languages. An assembler
is much simpler than a compiler. Every assembly language statement
directly represents a single machine instruction. High-level language statements
are much more complex and may require many machine instructions.
Another important difference between assembly and high-level languages
is that since every different type of CPU has its own machine language, it
also has its own assembly language. Porting assembly programs between
different computer architectures is much more difficult than in a high-level
language.

Featured Post

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.