Procedures allow large programs to be broken down into smaller pieces that can each be tested independently. In assembly, procedures are defined using PROC and ENDP directives to mark the beginning and end, without generating machine code. A procedure consists of instructions between the PROC and ENDP directives and can be called by name using a CALL statement.