Article View: comp.sys.intel
Article #1572386 instruction encoding query
From: kadorken
Date: Tue, 10 Feb 1987 21:34
Date: Tue, 10 Feb 1987 21:34
16 lines
1210 bytes
1210 bytes
The 386 programmers reference manual has for the full encoding of
the "jo" instruction the following bit pattern:
0x0F 0x80 <full displacement>. The bit encoding for pushing
a segment register (long form; 3-bit segment register name) is:
0x0F 10 seg3 000 where seg3 is one of {es, cs, ss, ds, fs or gs}.
Thus the two byte opcode 0x0F 0x80 could be interpreted as
being either a "jo" instruction or the long form instruction "push es".
(the 3-bit encoding for es is 000). Executing this instruction results
in a jump, not a push. However, other encodings (using the other 3 bit
segment register names) do result in a value being pushed on the stack.
Is the above behaviour just a fluke on our processor or will all
future '386 processors behave this way?
Technical Details
Message-ID:
<4979@watmath.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!watmath!kadorkenShow Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!watmath!kadorken From: kadorken@watmath.UUCP Newsgroups: comp.sys.intel Subject: 386 instruction encoding query Message-ID: <4979@watmath.UUCP> Date: Tue, 10-Feb-87 16:34:23 EST Article-I.D.: watmath.4979 Posted: Tue Feb 10 16:34:23 1987 Date-Received: Wed, 11-Feb-87 07:07:59 EST Distribution: na Organization: U of Waterloo, Ontario Lines: 16