<P> An assembly (or assembler) language, often abbreviated asm, is a low - level programming language for a computer, or other programmable device, in which there is a very strong (but often not one - to - one) correspondence between the language and the architecture's machine code instructions . Each assembly language is specific to a particular computer architecture . In contrast, most high - level programming languages are generally portable across multiple architectures but require interpreting or compiling . Assembly language may also be called symbolic machine code . </P> <P> Assembly language is converted into executable machine code by a utility program referred to as an assembler . The conversion process is referred to as assembly, or assembling the source code . Assembly time is the computational step where an assembler is run . </P> <P> Assembly language uses a mnemonic to represent each low - level machine instruction or opcode, typically also each architectural register, flag, etc . Many operations require one or more operands in order to form a complete instruction and most assemblers can take expressions of numbers and named constants as well as registers and labels as operands, freeing the programmer from tedious repetitive calculations . Depending on the architecture, these elements may also be combined for specific instructions or addressing modes using offsets or other data as well as fixed addresses . Many assemblers offer additional mechanisms to facilitate program development, to control the assembly process, and to aid debugging . </P> <Ul> <Li> A macro assembler includes a macroinstruction facility so that (parameterized) assembly language text can be represented by a name, and that name can be used to insert the expanded text into other code . </Li> <Li> A cross assembler (see also cross compiler) is an assembler that is run on a computer or operating system (the host system) of a different type from the system on which the resulting code is to run (the target system). Cross-assembling facilitates the development of programs for systems that do not have the resources to support software development, such as an embedded system . In such a case, the resulting object code must be transferred to the target system, either via read - only memory (ROM, EPROM, etc .) or a data link using an exact bit - by - bit copy of the object code or a text - based representation of that code, such as Motorola S - record or Intel HEX . </Li> <Li> A high - level assembler is a program that provides language abstractions more often associated with high - level languages, such as advanced control structures (IF / THEN / ELSE, DO CASE, etc .) and high - level abstract data types, including structures / records, unions, classes, and sets . </Li> <Li> A microassembler is a program that helps prepare a microprogram, called firmware, to control the low level operation of a computer . </Li> <Li> A meta - assembler is a term used in some circles for "a program that accepts the syntactic and semantic description of an assembly language, and generates an assembler for that language ." </Li> </Ul>

A command that is recognized and executed by the assembler while the source code is being assembled