On 06/03/2017 13:39, Thomas David Rivers wrote:
Paul Gilmartin <[email protected]> wrote:
On 2017-03-05, at 14:40, Martin Truebner wrote:
... to have heard from either of the two commerical vendors of
HLASM compatible cross-assemblers.
Now I have seen one. What is the other (is there one?) ?
Dignus, Tachyon, (does MicroFocus have one?), and the non-commercial
z390.

A while back, I discovered that:
X        EQU   X'7FFFFFFF'
          USING R2,X
          LA    R3,-X

Resolves to the equivalent of:
          LA    R3,2(,R2)

... where I believe it should say:
     ASMA307E No active USING for operand 2

I surmise it improperly ignored an overflow as it tried to resolve.
This matters little for AMODE 24 or AMODE 31; much for AMODE 64.
Does this behavior persist?  Cross-assemblers?

I fleshed this into an example to assemble:

R2 EQU 2
R3 EQU 3
FOO CSECT
X        EQU   X'7FFFFFFF'
          USING R2,X
          LA    R3,-X
   END

then I ran it thru HLASM v1.6 and got these messages:

                         7FFFFFFF               4 X        EQU   X'7FFFFFFF'
                                                5          USING R2,X
** ASMA029E Incorrect register specification - X
** ASMA435I Record 5 in RIVERS.ASM.SOURCE(T) on volume: DAVE
00000000 0000 0000               00000000      6          LA    R3,-X
** ASMA028E Invalid displacement
** ASMA435I Record 6 in RIVERS.ASM.SOURCE(T) on volume: DAVE
                                                7   END


and I ran it thru the Dignus assembler and got these messages:

                                                5          USING R2,X
** DASM029E Incorrect register specification
** DASM435I Record 5 in t2.asm
00000000 0000 0000               00000000      6          LA    R3,-X
** DASM028E Invalid displacement
** DASM435I Record 6 in t2.asm
                                                7   END


It seems HLASM and Dignus match.

But - I'm not sure that matches your description?

We have a substantial test suite for matching HLASM's USING vagaries;
so we should line-up very well.  Just a few months ago we went thru
an audit of that.

        - Dave Rivers -


--
[email protected]                        Work: (919) 676-0847
Get your mainframe programming tools at http://www.dignus.com

Your USING should be USING X,R2
Then, you get this with HLASM (z/OS 2.2)

                      00002           1 R2 EQU 2
                      00003           2 R3 EQU 3
000000                00000 00004     3 FOO CSECT
                     FFFFFF           4 X        EQU X'7FFFFFFF'
                 R:2 FFFFFF           5          USING X,R2
000000 4130 2002            00001     6          LA R3,-X
                                      7 END

Reply via email to