5.8.1. 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
Copyright © 1997, 1998 ARM Limited. All rights reserved.ARM DUI 0040D
Non-Confidential