Using Conditional Assembly in Macros
5-16
Example 5–10. The .loop/.break/.endloop Directives
.asg
1,x
.loop
.break (x == 10) ;
if x == 10, quit loop/break with
;
expression
.eval
x+1,x
.endloop
Example 5–11. Nested Conditional Assembly Directives
.asg
1,x
.loop
.if (x == 10) ;
if x == 10 quit loop
.break
; force
break
.endif
.eval x+1,x
.endloop
Example 5–12. Built-In Substitution Symbol Functions Used in a Conditional Assembly
Code Block
.ref OPZ
.fcnolist
*
*Double Add or Subtract
*
DBL
.macro ABC, ADDR, src
; add or subtract double
.if $symcmp(ABC,”+”) == 0
dadd
ADDR, src
; add double
.elseif $symcmp(ABC,”–”) == 0
dsub
ADDR, src
; subtract double
.else
.emsg
”Incorrect Operator Parameter”
.endif
.endm
*Macro Call
DBL –, OPZ, A
For more information about conditional assembly directives, see Section 4.8,
Conditional Assembly Directives, on page 4-20.
Summary of Contents for TMS320C54x
Page 38: ......
Page 39: ......
Page 40: ......
Page 41: ......
Page 42: ......
Page 43: ......
Page 44: ......
Page 45: ......
Page 46: ......
Page 47: ......
Page 48: ......
Page 49: ......
Page 50: ......
Page 51: ......
Page 52: ......
Page 53: ......
Page 54: ......
Page 55: ......
Page 56: ......
Page 57: ......
Page 58: ......
Page 59: ......
Page 60: ......
Page 61: ......
Page 62: ......
Page 276: ......
Page 277: ......
Page 278: ......
Page 279: ......
Page 280: ......
Page 281: ......
Page 282: ......
Page 283: ......
Page 284: ......
Page 285: ......
Page 286: ......
Page 287: ......
Page 288: ......
Page 289: ......
Page 290: ......
Page 291: ......
Page 292: ......
Page 293: ......
Page 294: ......
Page 295: ......
Page 296: ......
Page 297: ......
Page 298: ......
Page 299: ......
Page 300: ......
Page 301: ......
Page 302: ......