This course has three major themes: the use of a concrete assembly language; the study of algorithms of assemblers, linkers and loaders; and the theory of assemblers. The structure of a machine code is examined and the common properties of assembly languages are determined. We study the structure and algorithms of two- and one-pass macroassemblers, linkers and the loader program. The aim is to give the number of passes required to translation. We give an axiomatic approach to the theory of assemblers and the Fundamental Axiom of Assemblers is stated and the Fundamental Theory of Assemblers is proved. There is a practice as a part of this course. A simple assembly language is designed and an assembler for this language is created.