<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