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