Assembly directives and pseudo-ops:
Assembly directives are which instructions that executed by the assembler at assembly time, not by the CPU at run time. They can build the assembly of the program dependent on parameters input by the programmer, so that 1 program can be assembled with different ways, may be for different type of applications. They also can be used to direct presentation of the program to make it simple for the programmer to read and maintain it.
(For instance, pseudo-ops would be used to reserve storage areas and optionally their primary contents.) The names of pseudo-ops frequently start with a dot to differentiate them from machine instructions. Some assemblers also take favor of pseudo-instructions, which produce two or more machine instructions. Symbolic assemblers permit programmers to connect arbitrary names (labels or symbols) with memory locations. Generally, every variable and constant is given a name so instructions can reference those locations by their name, therefore promoting self-documenting code. In the executable code, the name of each subroutine is connected with its entry point, so any calls to a subroutine can use its name. In Inside the subroutines, GOTO destinations are given particular labels. Some assemblers support local symbols which are radically distinct from normal symbols (for example, the use of "10$" for a GOTO destination).
Most of the assemblers provide flexible symbol management, permit programmers to manage different type of namespaces, automatically calculate offsets within data structures, and assign labels that refer to literal values or the result of easy computations performed by the assembler. The labels can also be used to initialize variables and constants with re -locatable addresses.
Assembly languages, like most of the other computer languages, give permission to comments to be added to assembly source code that is avoided by the assembler. Good use of comments is even more significant with assembly code than with higher-level languages like c, c ++, etc., as the meaning and purpose of a sequence of instructions is difficult to decipher from the code itself.
Intelligent use of these facilities can simplify the problems of coding and maintaining low-level code. Raw assembly source code as produced by compilers or disassembles-code without any comments, data definitions, or meaningful symbols-is quite hard to read when changes must be made.