A compound assembler program consists of procedures. Every procedure has a unique name. A line starting with a procedure name followed by ‘proc’ marks the beginning of a procedure. A line optionally starting with a procedure name followed by ‘end proc’ marks the end of a procedure.
Example:
proc1 proc
content of procedure 1
proc1 end proc
proc2 proc
content of procedure 2
end proc
The content of every procedure is a plain assembler program. Location labels, data labels, and state names defined in every procedure are local to it.