On 8/30/2013 3: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?
Yes. If you have old code, it will continue to run as though all the registers are 32 bits, although Principles of Operation refers to them as 32-63 (and on entry from the system, the high half will be zero, making it safe to switch to 64-bit mode). You need to explicitly enable 64-bit mode, and yes, save areas have to be longer; there area several different formats. If you're just starting out, one easy way to handle things is to use BAKR at program entry to save status regardless of the mode you're in, and PR to return to the caller; in this mode system macros and services will use the caller's save area (if they need one at all) rather than one you provide. Gerhard Postpischil Bradford, Vermont
