Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uunet!aplcen!samsung!brutus.cs.uiuc.edu!psuvax1!psuvm!!PROGRAMMER From: SYSBJAV@VM.TCS.TULANE.EDU (John Voigt - Academic Systems Programmer) Newsgroups: bit.listserv.ibm-main Subject: Re: Base Registers Message-ID: Date: 9 Feb 90 16:57:51 GMT Sender: IBM Mainframe Discussion list Reply-To: IBM Mainframe Discussion list Lines: 28 Approved: NETNEWS@PSUVM Gateway In-Reply-To: Message of Fri, 9 Feb 90 10:42:24 EDT from On Fri, 9 Feb 90 10:42:24 EDT Ken Bell said: ...... > > MVSPROBT EQU * > USING MVSTIME,R2 <= Set base reg R2 > LA R2,MVSPTT-MVSSIZE*8 <= Change base reg R2 (?) > MVSPTL1 LA R2,MVSSIZE*8(R2) <= MVSSIZE needs base reg R2 (?) > CLI 0(R2),X'FF' > BE MVSPTL3 > CLC MVSUSER,VMUSER <= MVSUSER needs base reg R2 (?) > ... > ... > MVSUSER DS 1D > MVSVTIME DS 1D > MVSACUM DS 1D > MVSSIZE EQU (*-MVSTIME+7)/8 Note that the USING statement just informs the assembler that you will be using register 2 as a base. It still has to be loaded with correct address of what you are USING it for. In the example, register 2 will be used to address the storage following label MVSTIME. I presume the series of LA instructions gets register 2 pointing at the correct piece of storage. Also note that MVSSIZE does not depend on the base register since it is a constant with a value of X'10'. The only problem you might have would be with addressability for MVSPTT. I would assume that it is addressed of some other register. John/