CSCI 464
Spring 2006
Assignment 2
100 Points

Base Register Replacement


In this assignment you are to program a solution to the ASSIST Base Register Handling Routine Assignment on p. 44 in the CSCI 464 Notes and Examples, Spring 2006.

Requirements

  1. Your program should be a CSECT called BROPS2 with four additional CSECTs called BRINIT, BRUSIN, BRDROP, and BRDISP.
  2. You should place the base register table at the beginning of the BROPS2 CSECT, and make it an ENTRY.

  3. Your program documentation must describe each of the four major functions performed by the program. It must also explain the interfaces between ASSIST and the CSECTs.
  4. Make your routines efficient. Among other things, don't use standard linkage conventions for this assignment; save only necessary registers, and try to write the code so none need to be saved. Remember, though, you are allowed to alter only registers 7 - 11; any others must have the same value at exit as at entry to your routine.
  5. Use the JCL and test program provided in this assignment.
  6. Use BXLE to control the bottom-driven loop which searches the BR table in your BRDISP routine.

JCL and Test Program

//jobname  JOB ,'your name'
//*
//         JCLLIB ORDER=(T90CSCI.CSCI464.PROCLIB)
//STEP1    EXEC ASSIST
//SYSIN    DD   *
         TITLE '*** CSCI 464 BASE REGISTER REPLACEMENT ROUTINE ***'
*
BRENTRY  DSECT    a DSECT for an entry in your base register table
         .
         .
BROPS2   CSECT
BRTABLE  DS      storage for your base register table 
         ENTRY BRTABLE
*
         .
         .
     your BRINIT, BRUSIN, BRDROP, and BRDISP CSECTs go here
         .
         .
         END
         EJECT
*SYSLIB  BROPSRUN
         BROPSRUN
The last 2 lines above simply a) notify ASSIST that a macro called BROPSRUN is to be copied into this CSECT and b) invoke the macro named BROPSRUN. This macro is a copy of the test program that will be run to test the operation of your replacement modules. By invoking this macro, you do not have to type in the test program; consequently, you do not have to worry about making typing errors. Note that the *SYSLIB begins in column 1.
This page was last modified on Wednesday, March 28, 2007, at 08:24:46 PM GMT