Ok, thank you

-----Mensagem original-----
De: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> Em nome
de Jonathan Scott
Enviada em: quarta-feira, 22 de novembro de 2023 18:05
Para: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Assunto: Re: RES: RES: RES: RES: RES: Macro variable attributes

> My compiler says the length of the EQU must be an absolute
> value when I use wklen+8 on it.

We probably need to clarify some of the terminology in the books
and the message explanations.  The word "defined" normally
simply means that the definition of a symbol has already been
seen, but does not guarantee that the value of the symbol is
known at that point.  We normally use the term "resolved" when
the value has been determined.

The length field on an EQU must specify a value which is
predefined and absolute.  But it more strongly requires that the
value must be known when the EQU is encountered, so this might
be better described as both defined and resolved.  If an attempt
to evaluate the length finds that some term has not yet been
resolved (because it contains a forward reference, or because it
refers to the length of a section of code which is not yet
resolved) then the length is not acceptable.

In contrast, the value field for an EQU can refer to terms which
have not yet been defined, or which cannot be evaluated until
the difference in location counter has been resolved between two
symbols.  The assembler tries to evaluate the value each time
the symbol is referenced, then at the end of the first pass it
tries again to resolve any symbols which are not yet resolved.

Jonathan Scott, HLASM
IBM Hursley, UK

Reply via email to