🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.intel
Article #1572

386 instruction encoding query

#1572
From: kadorken
Date: Tue, 10 Feb 1987 21:34
16 lines
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!kadorken

Show 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