@nprofile1q... I remember a few things. For one, the 390 didn't have a stack register, but it did have 'Index Registers' which could be used in lots of interesting ways. Forex, for *fast* table lookup.
General purpose registers often had standard uses, especially when writing low-level subroutine code to be called by COBOL. Forex, R12 was the program counter, R13 was the address of the savearea, and R14 was the return address.