| |||
Home > Basic Assembly Language Programming > Using macros > Test and branch macro example |
A test-and-branch operation requires two ARM instructions to implement.
You can define a macro definition such as this:
MACRO $label TestAndBranch $dest, $reg, $cc $label CMP $reg, #0 B$cc $dest MEND
The line after the MACRO
directive is the macro
prototype statement. The macro prototype statement defines
the name (TestAndBranch) you use to invoke the macro. It also defines parameters ($label,
$dest, $reg, and $cc). You must give values to the parameters when
you invoke the macro. The assembler substitutes the values you give into
the code.
This is an example of how this macro can be invoked:
test TestAndBranch NonZero, r0, NE ... ... NonZero
After substitution this becomes:
test CMP r0, #0 BNE NonZero ... ... NonZero