I recently converted my z/XDC assemblies to using FLAG(PAGE0).
Got over 900 ASMA309W warnings!
Mostly on:
L Rn,CVTPTR
NOP 0
L Rn,PSATOLD-PSA
ICM Rn,15,PSATOLD-PSA
And the like.
I had to go through and append "(,0)" in most cases,
"(0)" in the ICM cases.
["(0,0)" would also have worked for the "(,0)" cases.]
Specifically:
L Rn,CVTPTR(,0)
NOP 0(,0)
L Rn,PSATOLD-PSA(,0)
ICM Rn,15,PSATOLD-PSA(0)
Was it worth it?
Well, I did discover and fix 21 actual errors.
So yes. I guess it was worth it.
Dave Cole, Developer
[email protected] (personal)
[email protected] (business)
540-456-6518 (cell)
At 7/10/2024 04:38 PM, Schmitt, Michael wrote:
Thanks.
I assumed that by "Instructs the assembler to issue diagnostic
message ASMA309W when an operand is resolved to a baseless address
and a base and displacement is expected." it meant the generated
instruction, not how the instruction was coded. So I did wonder how
the IBM macros were avoiding the warning.
This works for me...
-----Original Message-----
From: IBM Mainframe Assembler List
<[email protected]> On Behalf Of Jonathan Scott
Sent: Wednesday, July 10, 2024 4:51 AM
To: [email protected]
Subject: Re: Getting to CVT with FLAG(PAGE0)
To avoid ASMA309W when referencing a low storage location using
either a self-defining term (number) as the address or an
expression which resolves to an offset, code an explicit base
register of zero. For indexed instructions, IBM macros
typically also code an explicit zero index register as well just
to be clear.
Examples from SYS1.MACLIB:
L 15,CVTPTR(0,0)
L 15,X'10'(0,0)
L 15,PSATOLD-PSA(0,0)
Jonathan Scott, HLASM
IBM Hursley, UK