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