Procedures are written and assembled as separate program modules and stored in memory. When a procedure is called in the main program, the program controls are transferred to the procedure and after executing the procedure the program control is transferred back to the main program.
Macro is a small group of instructions enclosed by the assembler directives MACRO and ENDM. Macros are identified by their names and are usually defined at the start of a program. A macro is called by its name in the program. Whenever a macro is called in the program, the assembler will insert the defined group of instructions in place of the macro.