McKown, John wrote:
Why use J *+2 ? It assembles to "A7F4 0001", which would jump to the
"0001" portion of the instruction. Why not just hard code a H'0'? Do you
have some fancy debugger which detects this particular sequence by
saying something like: "If the abend is a S0C1, and the opcode is x'00'
followed by a x'01' and the BEA register points 2 bytes before the abend
address, then report a deliberate abend."?

Jumps can be conditional. DC H'0', EX of EX, and all similar techniques are "messy" because you must always branch *around* the code to force the abend. For example:

   CLI   0(R1),C'A'          Value too low?
   JNL   LABEL1              Branch if not
   DC    H'0'                Force logic error" abend
LABEL1 DC 0H
   CLI   0(R1),C'9'          Value too high?
   JNH   LABEL2              Branch if not
   DC    H'0'                Force logic error" abend
LABEL2 DC 0H

vs the very simple ...

   CLI   0(R1),C'A'          Value too low?
   JL    *+2                 Force logic error" abend
   CLI   0(R1),C'9'          Value too high?
   JH    *+2                 Force logic error" abend

--
Edward E Jaffe
Phoenix Software International, Inc
5200 W Century Blvd, Suite 800
Los Angeles, CA 90045
310-338-0400 x318
[EMAIL PROTECTED]
http://www.phoenixsoftware.com/

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to