| 29 | <h3>.altmacro</h3> |
| 30 | <p>Enable alternate macro syntax. This mode enables following features:</p> |
| 31 | <ul> |
| 32 | <li>new macro substitution without backslash:</li> |
| 33 | </ul> |
| 34 | <p><code>.macro test1 a b |
| 35 | .int a, b |
| 36 | .endm |
| 37 | test1 12,34 # put 12 and 34 integer value</code></p> |
| 38 | <ul> |
| 39 | <li>evaluating expression as string in macro arguments:</li> |
| 40 | </ul> |
| 41 | <p><code>.macro stringize a,b,c |
| 42 | .string "a, b, c" |
| 43 | .endm |
| 44 | stringize %12|33, %43*5, %12-65 # generate string "45, 215, -53"</code></p> |
| 45 | <ul> |
| 46 | <li>new string quoting in macro arguments (by triagular brackets '<' and '>'). Also, enables |
| 47 | new string escaping by '!'.</li> |
| 48 | </ul> |
| 49 | <p><code>test1 <this is test !<!>> # put "this is test <>" string to first macro argument</code></p> |
| 50 | <ul> |
| 51 | <li>local symbol names. 'local name' defines new unique symbol name for name. If any name |
| 52 | will be occurred then that unique name will substituted.</li> |
| 53 | </ul> |
| 54 | <p><code>local myName # myName substitutes new unique name |
| 55 | myName: # define new label with unique name</code></p> |
| 56 | <p>An alternate macro syntax does not disable any standard macro syntax features likes |
| 57 | macro substitution via backslashes, '\@'.</p> |