Article View: comp.sys.intel
Article #1574Re: 386 instruction encoding query
From: bverreau
Date: Fri, 13 Feb 1987 22:50
Date: Fri, 13 Feb 1987 22:50
18 lines
1615 bytes
1615 bytes
In article <4979@watmath.UUCP>, kadorken@watmath.UUCP (Keith A. Dorken) writes:
> 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.
>
This is a documentation error in the reference manual. The longer encoding
for the PUSH segment register instruction (as well as POP) is intended for
use solely with the FS and GS segment registers. You should use the one
byte form of the instruction for PUSH ES, CS, SS, or DS.
Technical Details
Message-ID:
<464@mipos3.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!water!watnot!watmath!clyde!rutgers!ames!oliveb!intelca!mipos3!bverreauReferences:
<4979@watmath.UUCP>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watnot!watmath!clyde!rutgers!ames!oliveb!intelca!mipos3!bverreau From: bverreau@mipos3.UUCP Newsgroups: comp.sys.intel Subject: Re: 386 instruction encoding query Message-ID: <464@mipos3.UUCP> Date: Fri, 13-Feb-87 17:50:36 EST Article-I.D.: mipos3.464 Posted: Fri Feb 13 17:50:36 1987 Date-Received: Sun, 15-Feb-87 00:47:34 EST References: <4979@watmath.UUCP> Distribution: na Organization: Intel, Santa Clara, CA Lines: 18 Summary: 386 encoding conflict