While the two terms, assembly language and machine language, are often used interchangeably, assembly language is a more “user-friendly” interpretation of machine language.
Machine language is the collection of patterns of bits recognized by a central processing unit (CPU) as instructions. Each particular CPU design has its own machine language. The machine language of the CPU of a microcomputer generally includes about 75 instructions; the machine language
of the CPU of a large mainframe computer may include hundreds of instructions. Each of these instructions is a pattern of 1s and 0s that tells the CPU to perform a specific operation.
Assembly language is a collection of symbolic, mnemonic names for each instruction in the machine language of its CPU. Like the machine language, the assembly language is tied to a specific CPU design. Programming in assembly language requires intimate familiarity with the CPU’s architecture, and assembly language programs are difficult to maintain and require extensive documentation.