Assembly language or an assembler is a low-level programming language, which is the lowest abstraction of machine languages (binary code).

There is a strong, but not complete correspondence between assembly and machine instructions. The Assembly Language is not completely portable in the sense that its syntax and semantics vary with computer architecture, but the core concepts, essence and functioning remain the same.