On 2013-08-30 14:09, Ed Jaffe wrote:
> On 8/30/2013 12:56 PM, Ward, Mike S wrote:
>> Hello all, I'm trying to get back into assembler from my old 360 days and I 
>> was reading the POO. In the POO under registers it says that there are 16 GP 
>> registers available to the program. Ok that sounds good so far, but then it 
>> goes on to say that the registers are 64 bits each. Is that true and if it 
>> is how can current old assembler programs work in z/OS when they were 
>> written for 32 bit registers. Save areas and such would have to be twice as 
>> large to hold the registers. Can someone please shed some light on this?
>
> They cleverly made it transparent by adding new non-modal instructions.
> For example, STMG does a store multiple of the full 64-bit GPRs whereas
> the old STM instruction only stores the low-order 32 bits of each
> register--just like in the old days. Therefore, an old program that
> doesn't know how to manipulate the high halves of the registers should
> not have an issue...
>
Isn't there one hole in this scheme, discussed in IBM-MAIN several
months ago, that GETMAIN (STORAGE OBTAIN, whatever) called in 31-bit
mode modifies the high half of its result register?  This still causes
no problems for a pure AMODE 31 program or for a pure AMODE 64 program,
but only when an AMODE 64 program calls an AMODE 31 program which saves
and restores only 31-bit registers but returns with the high parts
modified.

-- gil

Reply via email to