Craddock, Chris wrote:
if it were archaic, or "dead" code, the length of the operands is
dictated by the 1st two bits of the opcode so the disassembler would
presumably skip the correct number of bytes and interpret the next
instruction correctly. In other words it would get back into it's stride
eventually.
For some programs, "eventually" is a long time. In the seventies
we ran a third party product named Executor; out of curiosity I
looked at the way it handled expiration date checking. The
author had, by judicious use of base registers and offsets,
managed to create a sizable section of code containing more than
a dozen interleaved instructions, i.e., the sequence of
instructions branched back to start+2 and executed a separate
instruction chain. And there also was a checksum check on this
section of code!
In general, any code that has a DS in it could lead the
disassembler astray by presenting meaningless length bits, and
blank data areas may generate invalid STH sequences that won't
get back correctly.
Gerhard Postpischil
Bradford, VT
----------------------------------------------------------------------
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