<snip>
         LA   1,1(0)
         ST   1,AXNUM
         AXRES AXLIST=AXL              GET AN EAX FOR SERVICE1 (THE     X
                                             PC ROUTINE)
         L    4,AXVAL
</snip>

FWIW, changing the L to a LH works fine in the example, even if AXVAL 
happens to have its high bit on, because in the example reg 4 is used only 
as the operand on ETDEF of "EAX=(4)" which is a 2-byte operand and does 
"STH". 

The contents of bits 0-15 of 32-bit GR 4 do not affect the processing.
In "general", you'd probably choose to use instruction(s) that made sure 
that sign bit propagation would not adversely affect you.
In practice, although I didn't check, a system might never land with an AX 
>= 32K (the case where the AX has the high bit on).

Of course, as has been pointed out,  the "ST" needs to be "STH".

Peter Relson
z/OS Core Technology Design

Reply via email to