An assembly language is a low-level programming language. It is specific for a particular computer architecture. Each type of CPU has its own machine Language and Assembly Language, so an assembly language program written on one type of CPU will not run on other type of CPU.
The Assembly-Language is converted into machine code by a utility program referred as an assembler, the conversion process is referred as assembling the code.
Problem with the Assembly Language is that it requires a high level of technical knowledge and it's slow to write.
The above image shows the level of different languages
mov ebx, eax
mov esi, 66
mov [edx+ebx*4+4], ecx
mov [ebx], ah
From the above example the 32 bit registers are eax, ebx etc inside the CPU. The Mov instruction will just copy the value, so the first line is same as the C code.