Assembly Language is a low level programming language using the human readable instructions of the CPU
. On PCs, the assembly language looks like this
mov ebx, eax
mov esi, 66
mov [edx+ebx*4+4], ecx
mov [ebx], ah
To understand it you need to know that eax,ebx etc are each a 32 bit register inside the CPU. The Mov instructions just copy the value so the first line is pretty much the same as this C code
ebx = eax;
To compile this into machine code, you need an assembler. It's just a compiler for assembly language.
Many compilers can output the assembly language equivalent of code in C or C++.
The problem with assembly language is that it requires a high level of technical knowledge, and it's slow to write. In the same time that you take to write ten lines of assembly language- that's ten instructions, you could write ten lines of C++, perhaps the equivalent of 500 instructions!
Examples: There is rarely any need to write programs in assembly language these days!