[comp.sys.intel] Technical Books on Intel's 80x86 Line Wanted

dix@clinet.fi (Risto Kaivola) (01/20/91)

I'm in need of a book on Intel's x86 line. Because my current project
requires generating a certain kind of assembler, the information
provided in such books as 80386/80286 Assembly Language Programming
(McGraw-Hill, Inc. 1986) isn't fully adequate for my purposes. To be
more precise, I need information on the 'internal representation' of
the instruction set. This term isn't probably the right one to use in
Intel world, so I'll provide an example. Given that there is an operand
'move', which copies the contents of a register to another, and we have
the following instruction in an assembly language program:
 
    move register1, register2

The 'internal representation' of this instruction might be 0x56750102.
That is, 'internal representation' is 'what the instruction looks in
memory'.
 
I would be especially interested in information that might be provided in
electronic form, but I realize that this is more a hope than actual
possibility :-(.

P.S. I have used the term x86 line a bit loosely - I take 8088 and 8086
to be part of the processor set.

Thank you,
Risto

-- 
Risto Kaivola    Internet: dix@clinet.fi, UUCP: ...mcsun!santra!clinet!dix
VOICE: + 358 367 249

veit@du9ds3.uni-duisburg.de (Holger Veit) (01/22/91)

dix@clinet.fi (Risto Kaivola) writes:

>more precise, I need information on the 'internal representation' of
>the instruction set. This term isn't probably the right one to use in
>Intel world, so I'll provide an example. Given that there is an operand
>'move', which copies the contents of a register to another, and we have
>the following instruction in an assembly language program:
> 
>    move register1, register2

>The 'internal representation' of this instruction might be 0x56750102.
>That is, 'internal representation' is 'what the instruction looks in
>memory'.

Why don't try the regular 'Data Sheet' of the Intel Processors?
They list the whole instruction set in binary coding, however they are
not useful for the specific needs of describing assembler syntax. Assembler
manuals and books like the one mentioned are better for this.


--
|  |   / Holger Veit             | INTERNET: veit@du9ds3.uni-duisburg.de
|__|  /  University of Duisburg  | BITNET: veit%du9ds3.uni-duisburg.de@UNIDO
|  | /   Fac. of Electr. Eng.    | UUCP:   ...!uunet!unido!unidui!hl351ge
|  |/    Dept. f. Dataprocessing | 

martino@logitek.co.uk (Martin O'Nions) (01/22/91)

dix@clinet.fi (Risto Kaivola) writes:

>              I need information on the 'internal representation' of
>the instruction set. This term isn't probably the right one to use in
>Intel world, so I'll provide an example. Given that there is an operand
>'move', which copies the contents of a register to another, and we have
>the following instruction in an assembly language program:
> 
>    move register1, register2

>The 'internal representation' of this instruction might be 0x56750102.
>That is, 'internal representation' is 'what the instruction looks in
>memory'.


You may be suprised, but your local friendly Intel office should be able
to provide databooks FOC, which do contain this info. These may not be to
everyones tastes, but they do give a lot of info. They get better as the
processor progresses - the 8086 is (almost) readable, whilst the 486 book
is better than most commercial guides.

At least they shouldn't cost you anything (singly, that is. If you get them
bound together there's a charge.....)

Martin

--
DISCLAIMER: All My Own Work (Unless stated otherwise)
--------------------------------------------------------------------------
Martin O'Nions            Logitek Group Support      martino@logitek.co.uk
--------------------------------------------------------------------------
         Down the drinking well / Which the plumber built her
             Aunt Mathilda fell / - We should buy a filter....
         (Harry Graham - Ruthless Rhymes for Heartless Homes)

savel@hoss.unl.edu (Bharat P. Savel) (01/23/91)

In article <veit.664529461@du9ds3> veit@du9ds3.uni-duisburg.de (Holger Veit) writes:
>dix@clinet.fi (Risto Kaivola) writes:
>
>>more precise, I need information on the 'internal representation' of
>>the instruction set. This term isn't probably the right one to use in
>>Intel world, so I'll provide an example. Given that there is an operand
>>'move', which copies the contents of a register to another, and we have
>>the following instruction in an assembly language program:
>> 
>>    move register1, register2
>
>>The 'internal representation' of this instruction might be 0x56750102.
>>That is, 'internal representation' is 'what the instruction looks in
>>memory'.
i had the same problem when i started my project; i guess that you are
asking for material which is under properitaryship of INTEL; no way you
can find out; in the past however i got in touch with this guy at INTEL
thro' someone, and he was willing to answer only the specifics; if i asked
him A he would answer yes/no. period; in the mean time i did a lot of
brain storming with comp.arch, research was done with BYTE magazine,
microprocessor report; perhaps your best bet is to get in touch with mike
slater (of the microprocessor report) and ask him; he gets privy to all
these materials; 
good luck; also try to read between lines in manuals; it helps; i found
that my implementation of the predecode unit was right after figuring out
a logical implemantation; turns out that there is a specific terminology
assoc. with that; also i realized that my implementation would work faster
based on states (or some thing similar) if i could avoid the queue after
reset; this is called cache bypass i found out later;
--
--------------------------------------------------------------------------------
Bharat P. Savel
EE Dept.                                       E-mail : savel@hoss.unl.edu
Univ of Nebraska-Lincoln                           Ph : (402) 477-9857

colwell@omews1.intel.com (Robert Colwell) (01/23/91)

In article <1991Jan22.180548.7527@hoss.unl.edu> savel@hoss.unl.edu (Bharat P. Savel) writes:
>In article <veit.664529461@du9ds3> veit@du9ds3.uni-duisburg.de (Holger Veit) writes:
>>dix@clinet.fi (Risto Kaivola) writes:
>>
>>>more precise, I need information on the 'internal representation' of
>>>the instruction set.
>i had the same problem when i started my project; i guess that you are
>asking for material which is under properitaryship of INTEL; no way you
>can find out...

I certainly don't speak for Intel here, but as a disinterested observer I
point out that all the bit encodings you could want appear to be clearly
spelled out in the standard Intel literature; c.f. "i486 Microprocessor
Programmer's Reference Guide".  Or look into the gcc code, which targets
x86 machines rather successfully, and must therefore incorporate the proper
bit encodings.

Bob Colwell  colwell@mipon2.intel.com  503-696-4550
Intel Corp.  JF1-19
5200 NE Elam Young Parkway
Hillsboro, Oregon 97124

wilker@descartes.math.purdue.edu (Clarence Wilkerson) (01/24/91)

Am I missing something? Why not just look at the output of
the assembler, or DEBUG? Of course there are a lot addressing
modes, but almost any assembler comes with a manual with
some information along these lines.  Unless you're talking
about the internal microcode on the processors. Then only
INTEL and NEC know.
Clarence

dix@clinet.fi (Risto Kaivola) (02/10/91)

[First of all, apologies for breaking the reply chain. In my site, news
expire within a couple of days, and now that it is over a week since the
last reply appeared in this group, I can't reply to it.]

In my original posting, I wanted information on the 'internal
representation' of the instruction set. This was apparently a rather vague
expression, and it probably confused some. The appropriate term to use
would be 'instruction encoding'.
John R. Levine was very helpful, even providing me with an Intel's books
list (the six-digit number before the title is a book classification
number used by Intel - using it makes ordering faster):

230843  Microprocessors Handbook
240486  i486 Programmer's Reference
230985  386DX Programmer's Reference
210498  80286 Programmer's Reference

According to John Levine, each of these cost about USD 25.
He also told me that Intel has a "literature guide" (210620), in which
most of the available manuals are listed. In addition, each chip has a
data sheet, usually available at no cost, that lists the electrical
characteristics of the ship, and for CPU chips, often lists the data
formats and instruction encodings. According to the Finnish representative
of Intel (Fintronic, +358 0 6926022), the Microprocessors Handbook
includes data sheets for Intel CPUs. I've had no opportunity to check this,
though - they sent the data sheets instead of the single book.
  Marc Brandis told me that the instruction encoding of the 80386, as well
as its predecessors, can also be found in the Sybex book "Programming the
80386" by Crawford.
  For those who wondered why I don't just go and mess with a debugger:
I've no doubt that this would work, but the question for me is time. I
would probably be still thinking of the possible methods used for encoding,
if I had followed your advice :-).
  During the search for information, I also managed to get my hands on the A68
assembler (V314). In the documentation the author, a former Intel employee,
discusses the instruction encodings. The assembler is shareware, and I
deleted it, for I won't be needing this kind of package now. Interested
persons might try using ftp to transfer it from SIMTEL20 (of course, I just
lost the exact location. If memory serves me, it was wsmr-simtel20.army.mil).
 
Thanks for all who responded!

Risto
--
Risto Kaivola (dix@clinet.fi) or (Risto.Kaivola@f123.n220.z2.FIDONET.ORG)
-- 
Risto Kaivola    Internet: dix@clinet.fi, UUCP: ...mcsun!santra!clinet!dix
VOICE: + 358 367 249