Assembly language is 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 won't run on another. In the early days of programming, all programs were written in assembly language. However, programmers still use assembly language when speed is essential or when they need to perform an operation that isn't possible in a high-level language.