When the pre-processor encounters the name of a defined macro, it feeds the body of the macro to the assembler processor, just as if it had come from the source file. Note that the body of a macro is not processed by the assembler until the macro is called. Thus, if the macro body contains syntax errors, they will not be detected until the macro is called. We will see that macro bodies can contain directives, including other macro definitions. However, these are not processed either until the macro is called.
Macros are generally more time efficient.
Normally, a macro call will have as many actual arguments as the definition has formal arguments. It is an error for a macro call to specify more actual arguments than the definition has formal arguments. The TEXT of the actual argument is substituted for the text of the corresponding formal argument wherever it occurs. Some additional facilities available for use with macro arguments a. Y The generated code would be MOVL X, R0 MOVL Y, X MOVL R0, Y i.