On 02/23/2017 01:16 PM, Paul Gilmartin wrote:
On 2017-02-23, at 10:31, Steve Thompson wrote:

Informative?  Or Warning?  Do you then disagree with warnings on
multiple base-displacement resolutions?

I sometimes run into this, and can't figure out why the assembler even issued the 
message. But when it happens I do verify that it is using the correct base. This is 
actually a problem going back to the "F" Assembler.

It was a source of errors, difficult to analyze.  Nowadays, the
best way to suppress this is with the "end" operand of the USING
instruction.  In other cases, it may be necessary to:
         PUSH USING
         DROP
         USING ...
         ...
         POP USING

And the warning assumes 12-bit displacement.  I believe it is not
issued for longer displacements.  And with the advent of negative
displacements there is a need for a "begin" qualifier as well as
"end" on USING.

I use it all the time and still get warning of multiple base-displacement resolutions.


My gripe is, I removed a "," from the end of a line on purpose, and because it 
is marked as continuing, I get a warning. That didn't use to happen. This was done to 
test certain expansions of Macros, or not pick up a debugging keyword (on the last line 
of the continuation).

Grrr.  This shows that Assembler syntax was descriptive, not prescriptive.
Programmers used unspecified constructs that generated no error messages
or only warnings, and came to depend on them, and they had to become part
of the documented syntax.  There was no a priori decision on whether a
continuation needed be indicated by a comma, or a mark in column 72,
or both.


Way back when, this was documented. If you needed to continue the line, you had to have a non-blank character in 72. What you may be continuing is a comment, but never-the-less, it required a non-blank in cc72.

And as I recall, a non-macro statement for DOS could only be continued for 3 lines. OS had a different limit.

As each "generation" of assembler came out, more limits were lifted, more stuff supported. Finally we have HLASM.

On Wed, 22 Feb 2017 16:18:38 -0500, Melvyn Maltz wrote:

Immediate operands won't accept a duplication factor...why not ?
Can't find a reason in the HLASM manual

Try these...
AHI R1,2X'FF'
AHI R1,X'FFFF'
AHI R1,-1

How do you (and HLASM) feel about?:
        AHI R1,X'00FFFF'

Earlier, I said self-defining term.  I think that should have been
non-relocatable expression (and I don't think a constant with a
duplication factor is an expression).

What are the limits on the operand of AHI?  What of:

A        EQU -32768
         DC  Y(A)
         AHI R1,A    OK, I believe.

B        EQU  32767
         DC  Y(B)
         AHI R1,B    OK, I believe.

c        EQU  65535
         DC  Y(C)
         AHI R1,C    OK ???

Is the operand of AHI treated modulo 2^16, or ?

-- gil

Reply via email to