开发者

effect of undefined opcodes on the (original) Intel 8086/88

Since the original 8086 and 8088 do not have a software exception for illegal ins开发者_开发百科tructions, how do they behave when fed such, for instance "FF FF" (not an opcode) ? Do they stall, do it reset itself, possibly emitting a special cycle indication on its control bus ?


If memory serves, Intel's official claim was that they were all NOPs.

In reality, at least a few of the undefined op-codes do execute as real instructions that produce results. For example, the second byte of AAD or AAM is 00001010. That converts to 10 in decimal. If you execute an instruction with the same first byte as one of those (11010101 or 11010100 respectively), but change the second byte to another value (say 00000100), it'll do the same basic thing, but in the base you've specified (octal for 00000100).

Edit: You seem intent on turning your question into one that almost nobody can really answer. You started by asking about undefined op-codes, but then restrict it to some subset of those Intel said were undefined, and only want to know about those that were really, truly undefined (by some definition that apparently exists only in your head).

The only question that seems answerable at all is "what did ffff do?" At one time I might have been able to answer that, but about all I can say any more is "apparently nothing memorable."

As for claiming it can't be right, you seem to be mistaking this for something Intel really cared about. For the most part, undocumented op codes were exactly that: undocumented. They went to considerable effort to document how things would work when you followed the "rules", but mostly ignored what would happen otherwise.

From the sound of things, about all that will satisfy you is a real 8088/8086 that's still operational that you can test with. I wish you the best of luck with finding that.


Well, we know what some undefined opcodes do. My friend reenigne, or Andrew Jenner, hardware tested opcodes 0x60-0x6F for me. Turns out they're just aliases of 0x70-0x7F, or the conditional jumps.

EDIT: In other words, they are probably not NOPs, and the tested ones definitely aren't NOPs.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜