TI to IAR 2.x/3.x Assembler Migration
E.2.6 | File Reference Directives |
| |
Description |
| Asm430 Directive (TI) | A430 Directive (IAR) |
Include source statements from another | .copy or .include | #include or $ | |
file |
|
|
|
Identify one or more symbols that are | .def | PUBLIC or EXPORT | |
defined in the current module and used in |
|
| |
other modules |
|
| |
Identify one or more global (external) | .global | 1) | |
symbols |
|
|
|
Define a macro library | .mlib | 2) | |
Identify one or more symbols that are | .ref | EXTERN or IMPORT | |
used in the current module but defined in |
|
| |
another module |
|
|
1)The directive .global functions as either .def if the symbol is defined in the current module, or .ref otherwise. PUBLIC or EXTERN must be used as applicable with the A430 assembler to replace the
.global directive.
2)The concept of macro libraries is not supported. Include files with macro definitions must be used for this functionality.
Modules may be used with the Asm430 assembler to create individually linkable routines. A file may contain multiple modules or routines. All symbols except those created by DEFINE, #define (IAR preprocessor directive) or MACRO are “undefined” at module end. Library modules are, furthermore, linked conditionally. This means that a library module is only included in the linked executable if a public symbol in the module is referenced externally. The following directives are used to mark the beginning and end of modules in the A430 assembler.
Additional A430 Directives (IAR) |
| A430 Directive (IAR) | |
Start a program module |
| NAME or PROGRAM | |
Start a library module |
| MODULE or LIBRARY | |
Terminate the current program or library module | ENDMOD | ||
E.2.7 |
|
| |
Description |
| Asm430 Directive (TI) | A430 Directive (IAR) |
Optional repeatable block assembly | .break | 1) | |
Begin conditional assembly | .if | IF | |
Optional conditional assembly | .else | ELSE | |
Optional conditional assembly | .elseif | ELSEIF | |
End conditional assembly | .endif | ENDIF | |
End repeatable block assembly | .endloop | ENDR | |
Begin repeatable block assembly | .loop | REPT |
1)There is no directive that directly corresponds to .break. However, the EXITM directive can be used with other conditionals if repeatable block assembly is used in a macro, as shown:
SEQ | MACRO FROM,TO | ; Initialize a sequence of byte constants | |
| LOCAL X |
|
|
X | SET | FROM |
|
| REPT | ; Repeat from FROM to TO | |
| IF | X>255 | ; Break if X exceeds 255 |
| EXITM |
|
|
| ENDIF |
|
|
| DB | X | ; Initialize bytes to FROM...TO |