This exercise is intended to help you understand debugging.
It is not a homework assignment and will not be graded.
You will need to run a program. Copy this code into a file and run it:
//KC_____A JOB ,'Your Name Here',MSGCLASS=H
//STEP1 EXEC PGM=ASSIST
//STEPLIB DD DSN=KC02293.ASSIST.LOADLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
********************************************
* PRACTICE DEBUGGING PROGRAM
********************************************
MAIN CSECT
USING MAIN,15
XPRNT HEAD,30
L 7,NUM1
LTR 7,7
BNZ AHEAD
XPRNT OOPS,19
AHEAD M 6,=F'1'
D 6,NUM2
S 7,=F'3'
L 9,NUM3
M 8,=F'1'
DR 8,7
SR 8,8
XDECO 9,VALUE
XPRNT RESULT,29
XPRNT TAIL,21
BR 14
HEAD DC CL30' WE ARE DOING SOME ARITHMETIC.'
OOPS DC CL19' ERROR: NUM1 is 0.'
RESULT DC CL17' THE QUOTIENT IS:'
VALUE DS 12C
TAIL DC CL21' WE ARE DONE FOR NOW.'
NUM1 DC F'18'
NUM2 DC F'5'
NUM3 DC F'62'
END MAIN
/*
//
You will need to fill your KC number and your own name.
When you run the program, it will ABEND.
Questions
Answers
address of next instrution - number of bytes in the ABENDing instruction
which is X'00002C' - X'2' = X'00002A'.
You may be able to find this also in the listing at location X'00002A', but the value there is what was assembled. It is possible for some event to change the object code later. (If that occurs, it usually bad.) We want to know what was stored at X'00002A' at the time of the ABEND.