Assembly language is a low level language. Assembly languages were first developed in the 1950s. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture. This representation is usually defined by the hardware manufacturer, and is based on abbreviations (called mnemonics) that help the programmer remember individual instructions, registers, etc.
A utility program called an assembler is used to translate assembly language statements into the target computer’s machine code. The assembler performs a more or less isomorphic translation (a one-to-one mapping) from mnemonic statements into machine instructions and data.
Programmers found that developing even the simplest programs, using sets of numbers, was a very complicated process so they developed assembly languages. Assembly languages use keywords and symbols; much like English, to form a programming language, at the same time introduces a new problem. The problem is that the computer doesn’t understand the assembly code, so we need a way to convert it to machine code, which the computer does understand.
Programmers developed assemblers which are programs that convert assembly language code to machine language code. By using these assemblers programmers can write code in assembly language and convert into machine code.
A programming language that is once removed from a computer’s machine language. Machine languages consist entirely of numbers and are almost impossible for humans to read and write. Assembly languages have the same structure and set of commands as machine languages, but they enable a programmer to use names instead of numbers.
Each type of CPU has its own machine language and assembly language, so an assembly language program written for one type of CPU wont run on another. In the early days of programming, all programs were written in assembly language. Now, most programs are written in a high-level language such as FORTRAN or C. Programmers still use assembly language when speed is essential or when they need to perform an operation that isnt possible in a high level language