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

Reply via email to