I.2 Assembler
With only five new keywords (MACRO, REPT, ENDM, EXITM, LOCAL) and some
additional control characters, ASEM-51 version 1.3
introduces a full-blown macro processing! It is possible to define named and
repeated macro blocks.
Substitution of formal parameters is implemented as well as local symbols.
Macro calls and definitions can be nested to any depth.
Conditional assembly has been extended with the new IFN, IFB, IFNB, ELSEIF,
ELSEIFN, ELSEIFDEF, ELSEIFNDEF, ELSEIFB, and ELSEIFNB meta instructions.
The new control statements $GEN, $NOGEN, $GENONLY, $COND, $NOCOND, $CONDONLY,
$SAVE, and $RESTORE allow refined listing options for macro expansion and
conditional assembly. $MACRO and $NOMACRO allow or suppress macro expansion.
The /OMF-51 command line option has been introduced for the DOS and Windows
implementations to generate absolute OMF-51 modules instead of Intel-HEX
files. The Linux implementation recognizes the --omf-51 (or -o) option
respectively. It is also possible to include debug information with the
$DEBUG assembler control.
The environment variable ASEM51INC has been introduced on all platforms to
specify a search path for include files.
The new $NOBUILTIN control suppresses predefined symbols (SFR) in the symbol
table or cross-reference listing, while user-defined symbols are still listed.
The new $ERROR and $WARNING controls allow a more secure configuration
management of application programs.
For identification of the assembler and its version number, the following
predefined symbols of the type NUMBER have been introduced:
??ASEM_51 |
= |
8051H |
|
ASEM-51 |
??VERSION |
= |
0130H |
|
version 1.3 |
To improve compatibility with the Intel assembler, more than one assembler
control is allowed in a control line now, e.g.:
$ NOMOD51 INCLUDE(80C517.MCU)
Include files may now be nested to any depth!
EQU and SET can now be used to define symbols not only for numerical
constants, but also for registers A and R0 thru R7.
|