Each program section has a separate location counter, and the counter is relative to the start of that section. The assembler uses the location counter in determining where in the current program section the current statement goes. For example, if the location counter has the value X'24 (i.e., 24 hex) and the assembler encounters a 1-byte instruction, the assembler assigns the instruction machine code to section address X'24 and increments the location counter by one, since the statement requires one byte of memory. If the program section is relocatable, the linker assigns an absolute address to the instruction.
The location counter symbol is a single dot (.). If the location counter symbol is used on the right side of an assignment, the left symbol is assigned the current value of the location counter. If the location counter symbol is on the left side of an assignment, the value of the location counter is changed to the value of the right side of the assignment statement.