With their cross assembler ASM51, Intel has defined and implemented a
suitable assembly language for the
Unfortunately, Intel has announced the “end of life” of ASM51
(final
The
Since
PUBLIC EXTRN SEGMENT RSEG
Intel-style macros are not supported! (Thus the '%' character can be used in
comments.)
Up to now only the following assembler controls and their abbreviations have
been implemented:
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Intel- controls |
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
controls |
|
|
Assembler controls need not start in column 1, but may be preceded by any
number of blanks and tabs. Primary controls may also be preceded by comment
lines and $INCLUDE statements, provided the corresponding include files are
only containing other control statements and commentary.
The source file may contain blank and comment lines behind the END statement.
Character strings may also be enclosed in double quotes.
The DATA symbol for the special function register PCON is predefined.
The bit operator '.' is legal in all expressions, not only in those that
have to match the segment type BIT.
The meta instructions IFxx, ELSEIFxx, ELSE, and ENDIF allow
conditional assembly, while the meta instructions
MACRO, REPT, ENDM, EXITM, and LOCAL (and some control characters) form a powerful
macro processing language.
For detailed information on meta instructions see chapters
To make semantics unique, especially the precedence of unary operators in
expressions is slightly different. Furthermore,
expressions with a bit operation “.” evaluate to a BIT type result,
not to NUMBER. The segment type of symbols that are
defined with EQU or SET evaluates always to NUMBER. Otherwise it might be
difficult in some cases, to force the definition of typeless symbols.
This is described in detail in chapters
Except in DB instructions, the zero length string constant '' is illegal.
The $NOMOD51 control disables also the predefined CODE addresses.
The special assembler symbols AR0...AR7 are predefined for bank 0 before
the first USING statement occurs.