User manual

ABSLIST ST Assembler-Linker
50/89 Doc ID 11392 Rev 4
7.3 Limitations
1. There is one main limitation. The update of the relative address is based on the search
of the last declared segment. If the search cannot succeed because of the use of
.NOLIST directives which hide segment declarations, the absolute file cannot be
properly generated.
There is the same problem with .XALL and .SALL for macro expansions. If a segment
is declared in a macro, these directives should not be used.
There is the same kind of problem for label definitions which are removed from the list
file by the previously mentioned directives. Label definitions are needed to compute the
addresses of labels printed in the symbol table at the end of the list file.
In conclusion, do not use .NOLIST, .XALL and .SALL primitives to hide code where
segments are declared or labels are defined.
2. There is another limitation regarding the use of the EQU and CEQU directives to define
private labels.
The addresses of public labels can be found in the symbol table generated in the map
file.
There is a problem with private labels set by EQU or CEQU to a relative expression
involving a label defined in a relative segment. As ABSLIST does not parse the
expression after EQU and CEQU directives, it has no way to know which label is used in
the expression and which segment it belongs to.
ABSLIST always generates warnings for labels equaled to relative expressions.
For private labels equaled to relative expressions, the post processor will print question
marks for the unknown address.
There is a workaround to get the addresses of labels equaled to relative expressions in
the list file: just make these labels public and ABSLIST will be able to find their
addresses in the map file.
3. ABSLIST only accepts the ST7 and the STM8 processors. It could be easily
generalized to other processors but more validation time would be necessary.