Intel 121748-001 manual

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122

Go to page of

A good user manual

The rules should oblige the seller to give the purchaser an operating instrucion of Intel 121748-001, along with an item. The lack of an instruction or false information given to customer shall constitute grounds to apply for a complaint because of nonconformity of goods with the contract. In accordance with the law, a customer can receive an instruction in non-paper form; lately graphic and electronic forms of the manuals, as well as instructional videos have been majorly used. A necessary precondition for this is the unmistakable, legible character of an instruction.

What is an instruction?

The term originates from the Latin word „instructio”, which means organizing. Therefore, in an instruction of Intel 121748-001 one could find a process description. An instruction's purpose is to teach, to ease the start-up and an item's use or performance of certain activities. An instruction is a compilation of information about an item/a service, it is a clue.

Unfortunately, only a few customers devote their time to read an instruction of Intel 121748-001. A good user manual introduces us to a number of additional functionalities of the purchased item, and also helps us to avoid the formation of most of the defects.

What should a perfect user manual contain?

First and foremost, an user manual of Intel 121748-001 should contain:
- informations concerning technical data of Intel 121748-001
- name of the manufacturer and a year of construction of the Intel 121748-001 item
- rules of operation, control and maintenance of the Intel 121748-001 item
- safety signs and mark certificates which confirm compatibility with appropriate standards

Why don't we read the manuals?

Usually it results from the lack of time and certainty about functionalities of purchased items. Unfortunately, networking and start-up of Intel 121748-001 alone are not enough. An instruction contains a number of clues concerning respective functionalities, safety rules, maintenance methods (what means should be used), eventual defects of Intel 121748-001, and methods of problem resolution. Eventually, when one still can't find the answer to his problems, he will be directed to the Intel service. Lately animated manuals and instructional videos are quite popular among customers. These kinds of user manuals are effective; they assure that a customer will familiarize himself with the whole material, and won't skip complicated, technical information of Intel 121748-001.

Why one should read the manuals?

It is mostly in the manuals where we will find the details concerning construction and possibility of the Intel 121748-001 item, and its use of respective accessory, as well as information concerning all the functions and facilities.

After a successful purchase of an item one should find a moment and get to know with every part of an instruction. Currently the manuals are carefully prearranged and translated, so they could be fully understood by its users. The manuals will serve as an informational aid.

Table of contents for the manual

  • Page 1

    8086 RELOCATABLE OBJECT MODULE FORMATS An Intel Technical Specification Order Number: 121748-001 . Copyr;ght~1981 Intel Corporation Intel Corporation, 3065 Bowers Avenue, Santa Clara, California 95051[...]

  • Page 2

    ii Additional copies of this manual or other Intel literature may be obtained from: Literature Department Intel Corporation 3065 Bowers A venue Santa Clara, CA 95051 The information in this document is subject to change without notice. Intel Corporation makes no warranty of any kind with regard to this material. including, but not limited to. the i[...]

  • Page 3

    8086 Object Module Formats Version 4." TABLE OF CONTENTS DOCUMENT CONTROL • • . . . . . . . · . . . . . . . 2 3 - 'fABLE OF CONTENTS INTRODUCTION • • • • • • • • • • DEFINITION OF TERMS •••••• MODULE SEMANTICS MODULE IDENTIFICATION • • • • MODULE ATTRIBUTES •••••• SEGMENT DEFINITION[...]

  • Page 4

    8086 Object Module Formats LIBRARY DICTIONARY RECORD COMMENT RECORD • • • • • • • · . . · . . APPENDICES 1. NUMERIC LIST OF RECORD TYPES 2. TYPE REPRES ENTA'tIONS ••• · . . 3. SYNTAX DIAGRA~S • • • • • • · . . Version 4.(J • • · . . . . . . . • 85 • • · . . . . . • Sf; · . . • • • • 88[...]

  • Page 5

    Sf) 86 Object i4odule Formats Version 4.rrJ INTRODUC'f ION Here are the object record formats that define the object lanquaqe for the 8686 microprocessor. The 8086 object lanquaqe is the output of all lanquaqe translators with the 8086 as the tarqet processor. 'fhe 8086 - object lanquaqe is input and output for object languaqe processors[...]

  • Page 6

    8086 Object Module Formats Version 4.0 symbols. This restriction is not reauired by R&L, and is not enforced by it. LOGICAL SEGMENT (LSEG) A contiquous reqion of memory whose contents are determined at translation-time (except for address- binding) • Neither size nor location in MAS are necessarily determined at translation-time: size, althou[...]

  • Page 7

    8086 Object Module Formats Version 4.8 In the PIC/LTL case, an LSEG is not allowed to be in more than one group (e.g. defininq two qroups such as Gr GI(A,C,B) and Gr G2(B,C,D) in the same module is not legal). Otherwise an LSEG may be in more than one group. The existence of qroups such as Gl and G2 is not sufficient to infer that A,B,C,D all lie w[...]

  • Page 8

    8086 Object Module Formats Version 4.0 COMPLET~ NAME - The ~complete name H of an LSEG is defined to be the three component identification consistinq of the Segment Name, Class Name and Overlay Name. LSEG's from different modules will be combined iff their Com~lete Names are identical. 8[...]

  • Page 9

    8086 Object Module Formats Version 4.9 MODULE IDENTIFICATION In order to determin~ that a file contains an object program, a module header record will always be the first record in a module. There are three kinds of header records and each provides a module name. The additional functions of the header records are explained below. A module name may [...]

  • Page 10

    808fi Object Module Formats Version 4.0 represents contiquous reqions of memory whose contents are determined at translation-time. These reqions are called LOGICAL SEGMENTS (LSEG's). A module must contain information that defines the attributes of each LSEG. The SEG~ENT DEFINITION RECORD (SEGDEF) is the vehicle by which all LSEG information (n[...]

  • Page 11

    8086 Object Module Formats Version 4.0 The requirements for symbol definition records for module linkinq is satisfied by the PUBLIC NAMES DEFINITION RECORD (PUBDEF), the EXTERNAL NAMES DEFINITION RECORD (EXTDEF), and the TYPE DEFINITION RECORD (TYPDEF). Their semantics will be explained later. The requirements for debugqinq information are satisfie[...]

  • Page 12

    8086 Object Module Formats Version 4.~ absolute or relocatable, are found in LOGICAL DATA RECORDS. The ENUMERATED and ITERATED attributes within the classes are two ways of representinq the actual data bytes. A 8086 loader can load RDATA or PDATA Records, but will probably not be able to maintain the LSEG table information reauired for loadinq LDAT[...]

  • Page 13

    808~ Object Module Formats Version 4.0 CONCEPTUAL FRAMEWORK for FIXUP's A "Fixup" is some modification to object code, requested by a translator, performed by the R&L system, achievinq address bindinq. (see Appendix 4 for Examples) (Note) This definition of "fixup- accurately represents the viewpoint maintained by the R&[...]

  • Page 14

    8086 Object Module Formats version 4.0 pointer is present or not): (2) an OFFSET is merely the low order word of a pointer (and R&L doesn't care if the high order word follows or not); (3) a HIBYTE is merely the hiqh order half of an OFFSET (and R&L doesn't Nare if the low order half precedes or not); (4) a LOBYTE is merely the lo[...]

  • Page 15

    R986 Object Module Formats Version 4.9 (T6) X is an EXTERNAL INDEX. The TARGET is the byte whose address is (eventually qiven by) the External Name identified by the INDEX. (T7) X is a FRAME NUMBER. The TARGET is the byte whose 20-bit address is (X*l6). The following nomenclature is used to describe a TARGET: TARGET: SI«seqment name» ,<displac[...]

  • Page 16

    808~ Object Module Formats Version 4.0 displacement between the LOCATION and the TARGET must be within 32K. To indicate this type of fixup, a 7th way (F6) of specifyinq a frame is introduced. Below is the descriptlon of the seven ways of specifying frames: (Fe) x is a SEGMENT INDEX. The FRAME is the canonic FRAME of the LSEG defined by the INDEX. ([...]

  • Page 17

    8886 Object Module Formats Verslon 4.8 (FSd) The TARGET is specified with an explicit FRAME NUMBER: in this case the FRAME is determined as in (F3) above. (F6) No X. There is no FRAME. This is a way to indicate to R&L that an 8089 self-relative reference is to be processed. A siqned displacement between the LOCATION 20-bit address and the TARGE[...]

  • Page 18

    8086 Object Module Formats Version 4.0 If the LOCATION is a BASE. POINTER. or HIBYTE. it is unclear what the translator had in mind, and the action taken by R&L is defined by LINK-86 and/or LOCATE-86 EPS·s. SEGMENT-RELATIVE FIXUPS A seqment-relative fixup operates in the followinq way: a non- neqative l~-bit number, FBVAL, is defined as the FR[...]

  • Page 19

    808~ Object ~odule Formats Version 4.9 <---- in OATA Record ----> <--- in FIXUP Record ---> +------+ +------+------+ +n or +n <null> <--- Case 1 +------+ +-------+ ... ------+ +------+ +-~----+------+ +------+----~~+ q or q +n <--- Case 2 +------+ +------+ q or <--- Case 3 +------+ Case 1 illustrates the situation where a[...]

  • Page 20

    8086 Object Module Formats Version 4.0 (1) A 5 HORT-JMP is being made to an external subroutine. In this case, the TARGET should be specified as TARGET: EI(subroutine) ,0000H The reason is that when LINK-86 learns where the subroutine is located, it will probably be a known offset (dl) within some LSEG A. Thus, LINK-8~ will convert the above TARGET[...]

  • Page 21

    8086 Object Module Formats version 4.9 ~he followinq example (3) is a case where access verification works whether the TARGET specification is ~primary~ or ·secondary-: (3) The translator wishes to reference ·forwards~ from a REFERENT, and to ensure that the TARGET lies within the specified FRAME. For example, we wish to reference the l00'th[...]

  • Page 22

    8086 Object Module Formats Version 4.0 RECORD ORDER A object code file must contain a seauence of (one or more) modules, or a library containing zero or more modules. A module is defined as a collection of object code defined by a sequence of object records. The followinq syntax shows the valid orderinqs of records to form a module. In addition, th[...]

  • Page 23

    808~ Object Module Formats Version 4.9 mod tail = [REGINT1 MODEND. libtail = LIBNAM LIBLOC LIBDIC. NOTE: The character strinqs represented by capital letters above are not literals but are identifiers that are further defined in the section defininq the Record Formats. The following rules apply: 1. A FIXUPP record always refers to the previous DATA[...]

  • Page 24

    8086 Object Module Formats Version 4.0 !~~B~P~~TION.to. the. RECORD FO~MATS The followinq paqes schematic form. Here conventions: present diaqrams is a sample, to of Record illustrate Formats in the various SAMPLE, RECORD FORMAT ... -. -- .. ---- - . (SAMREC) ** *********************111********* II I 1*********** * * * * * * * REC * * TYP * RECORD [...]

  • Page 25

    8086 Object Module Formats Version 4.0 Any field that indicates a ~NAMEd has the followinq internal structure: the 1st byte contains a number between 0 and 40, inclusive, that indicates the number of remaininq bytes in the field. The remaininq bytes are interpreted as a byte string1 each byte must represent the Ascii code of a character drawn from [...]

  • Page 26

    8986 Object Module Formats T-MODULE HEADER RECORD (THEAi5R) ***********************///*********** * * * * * * REC * * TYP * * 80H * RECORD LENG'fH * T * MODULE * NAME * CHK * * SUI" * * * * * * * * ***********************///*********** version 4.0 Every module output from a translator must have aT-MODULE HEADER RECORD. Its purpose is to p[...]

  • Page 27

    8086 Object Module Formats Lr~ODULE, HEADER RECORD (LHEADR) ***********************///*********** * * * * * * REC * RECORD * L-MODULE * CHK * * TYP * LENGTH * NAME * SU~ * * 82H * * * * * * * * * ***********************///*********** Version 4.0 Every module previously created by (cross) LINK-86 (Vl.3 or earlier) or by LOCATE-8~ may have an L-MODUL[...]

  • Page 28

    8~8~ Object Module Formats "er~ ion 4., ~ R-~ODULE HEADER RECORD (RHEADR) ***********************///*********///*********///*********** * * * * * * * * REC * * TYP * * 6EH * RECORD LENG'fH * R-MODULE * NAME * * R-MODULE * ATTR * * R-MOOULE * INFO * * CHK * * SUI., * * * * * * * * * * ***********************///*********///*********///*****[...]

  • Page 29

    8086 Object Module Formats Version 4.0 TYP is a 2-bit su~field that specifies the module type. The semantics are defined as follows: TYP=0 TYP=l TYP=2 TYP=3 The module is an absolute module. The module is a relocatable module. Fixups other than base fixups may still be present. The module is a Position Independent Code module. It can be loaded anyw[...]

  • Page 30

    8086 Object Module Formats Version 4.0 DYNAMIC STORAGE is the memory space that must be allocated (for buffer, for dynamic expansion, etc ••• ) at load-time. The d&faUl· value is zero. MAXIMUM DYNAMIC STORAGE is the maximum dynamic memory that miqht be needed by the module. This .value must be qreater than or equal to DYNAMIC STORAGE (By[...]

  • Page 31

    8086 Object Module Formats LIST OF· NAMES. RECORD ------ (LNAMEST-' -"-' ... ***********************///*********** * * * * * * REC * RECORD * NAME * CHK * * TYP * LENGTH * * SUM * * 9~H * * * * * * * * * ***********************///*********** I 1 +----rpt----+ Version 4.0 This Record provides a list followinq SEGDEF and GRPDEF Record[...]

  • Page 32

    808~ Object Module formats SEG~ENT DEFINITION. RECORD (SEGDEF) Version 4.0 **********************///*****************///*******///*******///********** * * * * * * * * * * REC * RECORD * SEGMENT * SEGi-EN'r * SEGMEN'r * CLASS * OVERLA'l * CHK * * 'r'll' * LENG'fH * ATTR * LENG'fH "* NAME * NAME * NAME * [...]

  • Page 33

    d086 Object Module Formats version 4.0 attribute of the LSEG. The semantics are defined as follows: A=0 SEGDEF describes an absolute LSEG. A=l SEGDEF describes a relocatable, byte aliqned LSEG. A=2 SEGDEF describes a relocatable, word aliqned LSEG. A=3 SEGDEF describes a relocatable, paraqraph aligned LSEG. A=4 SEGDEF describes a relocatable, paqe [...]

  • Page 34

    8086 Object Module Formats Version 4.0 P (Paqe-Resident) is a l-bit subfield which, if 1, demands that the seqment be located in ~AS without crossinq a page boundary. ·(This corresponds to the Min-paqe- relocation type of 8080 R&L.) The FRAME NUMBER and OFFSET fields (present only for absolute seqments, A-9 or A-5) specify the placement in MAS[...]

  • Page 35

    8086 Object Module Formats Version 4.8 attribute bit in the ACBP field (see above) must be used to give the segment a length of 64K. SEGMENT NAME INDEX -------. The Segment Name is a name the programmer or translator assigns to the segment. Examples: CODE, DATA, TAXDATA, MODULENAME CODE, STACK. This field provides the Segment Name, by indexing into[...]

  • Page 36

    8086 Object Module Formats GROUP DEFINITiON RECORD .......--..-..-- (GRPDEF) ***********************///**********///************ * * * * * * * REC * RECORD * GROUP * GROUP * CHK * * TYP * LENGTH * NAME * COMPONENT * SUM * * 9AH * * INDEX * DESCRIPTOR * * * * * * * * ***********************///**********///************ I I +--repeated---+ GROUP NAME [...]

  • Page 37

    8186 Object Module Formats Version 4.1 ***********///*********///*********///***** * * * * * * sea * SEGMENT * CLASS • OVERLAY * * * NAME * NAME * NAME * *(FDH)* INDEX * INDEX • INDEX * * * * * * ***********///*********///********///****** ************************************* * * * * * • LTL * LTL * MAXIMUM * GROUP * * GRP * OAT * GROUP * LE[...]

  • Page 38

    8086 Object Module Formats Version 4.0 A Name Index with value zero carries special siqnificance: it specifies all ~ames. (Note: Name Indices with zero value may not occur in other record types.) If the first byte of the DESCRIPTOR contains 0FBH. then the DESCRIPTOR contains 3 more fields. which are the LTL OAT field. the maximum length of the qrou[...]

  • Page 39

    80B6 Object Module Formats Version 4.0 (Examples) Assume that an LNAMES record exists such that the names "DATA", I' RAM 'I , It MYPROG" , "CODE", .. " (null), "STACK-" "CONST" and "MEMORY" are selected by Name Index values of 1, 2, 3, 4, 5, 6, 7 and 8, respectively •. The Desc[...]

  • Page 40

    8086 Object Module Formats TYPE DEFINITION RECORD -----(TyPDEF)----- Version 4.9 ************************///*********///************ * * * * * * * REC * RECORD * NAME * EIGHT * CHK * * TY P * LENGTH * (L"INK86 * LEAF * SUM * * SEH * * USE) * DESCRIPTOR * * * * * * * * ************************///*********///************ I I +-----rpt----+ This [...]

  • Page 41

    8086 Object Module Formats Version 4." The EN field is a byte: the 8 bits, left to riqht, indicate if the following 8 Leaves (left to riqht) are Easy (bit=0) or Nice (bit=l) • The LEAF DESCRIPTOR field. which occurs between 1 and 8 times, has one of the followinq formats: ******* * * * 0 * * to * * 128 * * * ******* ******************* * * *[...]

  • Page 42

    8086 Object Module Formats Version 4.0 ******* * * * * * 133 * * * * * ******* ************* * * * * *-127 * * 134 * to * * *+127 * * * * ************* ******************* * * * * * -32K * * 135 * to * * * +32K * * * * ******************* **************************.*** * * * * * 4-byte signed * * 136 * integer * * * * * * * ************************[...]

  • Page 43

    8086 Object Module Formats Version 4.8 'fhe sixth Repeat Leaf can last leaf of considered to considered to leaves. form, ~ sinqle byte of 133, is a Repeat Leaf. A only occur as the last leaf of a Branch. If the a branch is a Repeat Leaf then the previous leaf is repeat indefinitely. Otherwise the 'Branch is end in an indefinitely lonq seq[...]

  • Page 44

    8086 Object Module Formats Version 4." PUBLIC NAMES DEFINITION RECORD -------(PUBDEF)----- ***********************///*********///*********************///*********** * * * * * * * * * REC * RECORD * PUBLIC * P~BLIC * PUBLIC * TYPE * CHK * * TYP * LENG'rH * BASE * NAME * OFFSET * INDEX * SU,4 * * 90H * * * * * * * * * * * * * * * **********[...]

  • Page 45

    8086 Object Module Formats Version 4.0 (Informal Discussion) The FRAME NUMBER is present iff both the SEGMENT INDEX and GROUP INDEX are zero. A non-zero GROUP INDEX selects some qroup1 this group is taken as the -frame of reference- for references to all public symbols defined in this record, e.q., LINK-86 and LOCATE-86 will perform the following a[...]

  • Page 46

    808~ Object Module Formats Version 4.0 TYPE INDEX The TYPE INDEX field identifies a sinqle precedinq TYPDEF (Type Definition) Record containinq a descriptor for the typ~ of entity represented by the Public Symbol.[...]

  • Page 47

    898n Object Module Formats version 4.0 EXT~RNAL ... !AMES DEFINITION RECORD (EXTDEF) ***********************///*********///*********** * * * * * * * REC * RECORD * EXTERNAL * TYPE * C~K * * TYP * LENGTH * NAME * INDEX * SUM * * 8CH * * * * * * * * * * * ***********************///*********///*********** , , +-------repeated--------+ This Record prov[...]

  • Page 48

    8086 Object Module Formats T~il·E. INDEX This field identifies a Definition) Record containinq named by the External Symbol. 48 Version 4.0 sinqle precedina TYPDEF (Type a descriptor for the type of object[...]

  • Page 49

    8086 Object Module Formats Version 4.0 LOCAL SY~BOLS. RECORD ( LOCSYl~) ***********************///*********///*********************///*********** * * * * * * * * * REC * RECORD * LOCAL * LOCAL * LOCAL * TYPE * CHK * * TYP * LENGTH * SYMBOLS * SYMBOL * SY~BOL * INDEX * SUM * * 928 * * BASE * NAME * OFFSET * * * * * * * * * * * **********************[...]

  • Page 50

    808~ Object Module Formats Version 4.0 of the LSEG specified by the SEGMENT INDEX. (There must be no FRAME NUMBER field in this case.) If both the GROUP INDEX field and the SEGMENT INDEX field contain zero, then the next field is a FRAME NU~BER: in this case, the referent value is the location of the first byte of the specified frame. If the GROUP [...]

  • Page 51

    808~ Object Module Formats Version 4.0 LINE NUMBERS RECORD (LINNUM) ***********************///*********************************** * * * * * * * * REC * RECORD * LINE * LINE * LINE * CHK * * TYP * LENGTH * NUMBER * NUMBER * NUMBER * SUM * * 94H * * BASE * * OFFSET * * * * * * * * * ***********************///*********************************** I I +-[...]

  • Page 52

    8986 Ob·ject Module Formats Version 4.0 ICE-86 to -GO TO LINE NUMBER 22 OF MODULE MODNAME M • ICE-8~ may respond by executinq a lonq jump to the appropriate location. This long jump will set the CS register; it is important that the CS register be set in accordance with the assumptions made while translating the code. This is the purpose of the [...]

  • Page 53

    8086 Object Module Formats Version 4.0 BLOCK DEFINITION RECORD --------(SLKDEF'------- **********************///**********///*********///*********///*********** * * * * * * * "REC * RECORD * BLOCK * BLOCK * PROCEDURE * TYPE * CHK * TYP * LENGTH * BASE *INFORMATION*INFOR~ATION* INDEX * SUM * 7AH * * * * * * * * * * * * * * ****************[...]

  • Page 54

    808~ Object Module Formats Version 4.0 SLOCK INFOR~ATIO~ The BLOCK INFORMATION block has the followinq format: NAME *****///***************************** * * * * * * BLOCK * BLOCK * * NAME * OFFSET * LENG'rH * * * * * * * * * *****///***************************** This field contains the name of the block. describes an unnamed block in the sour[...]

  • Page 55

    8086 Object I~dule Formats Version 4.0 PROCEDURE INFORMATION The PROCEDURE INFOR~ATION block has the followinq format: ************************************************** * , I I I I I I * * I I I I I I I * *PILI010101010IB* * , I I , , I I * * , I I I , I I * RETURN ADDRESS OFFSET * * * * * ************************************************** +------[...]

  • Page 56

    8986 Object Module Formats Version 4." BLOCK ENn RECORD (BLKEND) ************************* * * * * * REC * RECORD * CHK * * TYP * LENGTH * SUM * * 7CH * * * * * * * ************************* This record, toqether with the BLKDEF record, provides information about the scope of variables in. the source program. Each BLKOEF reco rd must be follow[...]

  • Page 57

    808#; O,?ject Module Formats Version 4.(') DEBUG. SYMBOLS. RECORD --.---- - -{OEBSYM) ~*********************///*********///*********************///*********** * * * * * * * REC * RECORD * FRAME * SYMBOL * * TYPE * CaK * TYP * LENGTH *INFORMATION* NAME * OFFSET * INDEX * SUM * 7 EH * * * * * * * * * * * * * * ~*********************///*********/[...]

  • Page 58

    808~ Object Module Formats Version 4.0 The B (Based) bit, if 1, means that the location in MAS defined by the FRAME INFORMATION and OFFSET fields contains a value that is the address of a symbol. The L (Long) bit tells the lenqth of this value. L=0 -) 2 bytes L=l -) 4 bytes If L=0 the frame part of the symbol address is defined to be the frame q i [...]

  • Page 59

    8~86 Object Module Formats Version 4.0 If FRAME ~ETHOD=2, the DATUM has the format: *****///***** * * * * * * BLOCK INDEX * * * * *****///***** FRAME METHODs of 3 to 7 are illegal. The FRA~E ~ETHOD field also specifies what kind of information is in the OFFSET field (see below). SYMBOL NAME This field provides the name of the symbol. OFFSET The OFF[...]

  • Page 60

    8086 Obiect Module Formats RELOCATABLE ENUMERATED DATA RECORD -------- --- --("~ E:DATA)-------------- Version 4.0 ***********************///***************************** * * * * * * * * REC * RECORD * DATA * DATA * OAT * CHK * * TY P * LENG'fH * RECORD * RECORD * * SUr-1 * * 72H * * BASE * OFFSE:T * * * * * * * * * * ********************[...]

  • Page 61

    808fi Object Module Formats Version 4.8 respect to the specifi~d FRA~E (if SEGM.ENT INDEX = 0). Successive data bytes in the OAT field occupy successively higher locations of memory. DAT If one or more FIXUPP records follow then this field provides up to 1024 consecutive bytes of load-time locatable or absolute data. Otherwise, the repeated field i[...]

  • Page 62

    808~ Object Module Formats RELOCATABLE. ITERATED.DATA~RECORD - {RIDATA) Ve:· sion 4.0 ***********************111*********************//1**** ******* * * * * * * * * REC * RECORD * DATA * DATA * ITERATED * CHK * * TYP * LENG'fH * RECORD * RECORD * DATA * SUM * * 748 * * BASE * OFFSET * BLOCK * * * * * * * * * ***********************111********[...]

  • Page 63

    8086 Object Module Formats Version 4.8 S~GMENT INDEX> 0) or with respect to the specified FRAME (if SEGMENT INDEX = 0). Successive data bytes in the ITERATED DATA BLOCK field occupy successively hiqher locations of memory. ITERATED DATA BLOCK This repeated field is a structure specifyinq the repeated data bytes. It is a structure that has the fo[...]

  • Page 64

    808~ Object Module Formats PHYSICAL ENUMERATED DATA RECORD (PEOATA) ************************************************* * * * * * * * * REC * RECORD * FRAME * OFF * * CHK * * TYP * LENGTH * NUMBER * SET * OAT * SUM * * 848 * * * * * * * * * * * * * ************************************************* +-rpt-+ Version 4.9 This record provides contiquous d[...]

  • Page 65

    808fi Object Module Formats Version 4.0 PHYSICAL ITERATED DATA RECORD ( P tDA T A,-- *****************************************///*********** * * * * * * * * REC * * TYP * * 86H * RECORD LENG'rH * * * FRAME NUJ1BER * OFF * ITERATED * SET * DATA * * BLOCK * CHK * * SUM * * * * * * * * * * *****************************************///*********** [...]

  • Page 66

    8086 Object Module Formats LOGICAL ENUMERATED DATA,RECORD -_._. ·------(tEDATA)"---·-· _ ..... _ ... Version 4.0 ***********************///***************************** * * * * * * * * REC * RECORD * SEG~ENT * ENUMERATED* * CHK * * TYP * LENG'rH * INDEX * DATA * OAT * SUM * * ASH * * * OFFSET * * * * * * * * * * ***********************[...]

  • Page 67

    808fi Object Module Formats version 4.0 This field provides up to 1024 consecutive bytes of relocatahle or absolute data. ~7[...]

  • Page 68

    8086 Object Module Formats LOGICAL ITERATED DATA RECORD ---(LIDATA)----·- Version 4.9 ***********************///*********************///*********** * * • * • * * * REC * RECORD * SEGMENT ~ ITERATED· ITERATED * CHK • * TYP * LENGTH * INDEX * DATA * DATA * SUM • • AlH * * * OFFSET * BLOCK * * * * * * • * * *****.*****************///***~[...]

  • Page 69

    8086 Object Module' Formats Version 4.8 Same as for the RIDATA record. -;9[...]

  • Page 70

    8e8~ Object Module Formats FIXUP RECORD . (FIXUPP) . ***********************///*********** * * * * * * REC * * TYP * * 9CH * RECORD LENG'rH' * THREAD * or * FIXUP * CHK * * SUM * * * * * * * * ***********************///*********** I I +----rpt----+ Version 4.8 This record specifies" or more fixups. Each fixup requests a modification [...]

  • Page 71

    8080 Object Module Formats Version 4.0 The 'Z' is a one bit subfield, currently without any defined function, that is required to contain 0. The '0' subfield is one bit that specifies what type of thread is beinq specified. If 0=0 then a tarqet thread is beinq defined and if 0=1 then a frame thread is beinq defined. METHOD is a [...]

  • Page 72

    808~ Object Module Formats Version 4.8 M is a one bit subfielG that sgecifies the mode of the fixUDS: self-relative (M=0) or segment relative (M=l). (~ote) Self-relative fixups may NO~ be applied to RIDATA, LICATA, or PIDATA records. (End" of Note) S is a one bit subfield that specifies that the lenoth of the TARGET DISPLACEMENT subfield, if p[...]

  • Page 73

    808fi Object Module Formats Version 4.8 'r is a one bit subfield that specifies whether the target specified for this fixup is defined by reference to a thread CT=l). or is aiven explicitly in the FIXUP field (T=0). P is specified specified Since a the P bit attribute a one bit subfield that indicates whether the tarqet ~ in a primary way (req[...]

  • Page 74

    8086 Object Module Formats Version 4." OVERLAY DEFINITION RECORD (OVLDEFf ---- -- ***********************///*********1 1'1*********///*********** * * * * * * * * REC * * TYP * * 70H * RECORD LENG'fH * OVERLAY * NAME * .. * * OVERLAY LOCATION * * * OVERLAY ATTR * CHK * * SUM * * * * * * * * * * ***********************///*********~ 111[...]

  • Page 75

    8086 Object Module Formats Version 4.8 The SA subfield provides information for memory layout. It has the followinq format: **************************~****** * I I I I I , I * * z I Z I Z I Z I Z I Z I S I A * * I I I I , I I * ********************************* Z's indicates that these I-bit field have not been assigned a function. These bits [...]

  • Page 76

    808~ Object Module Formats END RECORD --(ENOREe) ******************************* * * * * * * REC * RECORD * END * CHK * * TYP * LENGTH * TYP * SUM * * 78H * * * * * * * * * ******************************* Version 4." This record is used to denote the end of a set ot records such as a block. and an overlay. END·TYP ~his field specifies the typ[...]

  • Page 77

    808~ Object Module Formats REGISTER INITIALIZATION RECORD - .. ------ .. --fREGiNT,-----44----- *****************************///*********** * * * * * * * REC * RECORD * REG * REGISTER * CHK * * TYP * LENGTH * TYP * CONTENTS * SUM * * 708 * * * * * * * * * * * *****************************///*********** I I +----repeated-----+ Version 4.0 This recor[...]

  • Page 78

    8086 Object Module Formats Version 4.0 REGISTER CONTENTS The REGISTER CONTENTS field has either of the following fo rmats: First form (L=l) ***********///*********///***************** * * * * * * REG * * OAT * * * FRA~E DATUM * TARGET * DATUM * * TARGET * * 015- * * PLACEMENT * * * * * ***********///*********///***************** , I I I +conditiona[...]

  • Page 79

    808~ Object Module- Formats Version 4.1 The format and the interpretation of the above REGISTER BASE field is identical to the LOCAL SY~BOL BASE described in the LOCSYM record. The REGISTER OFFSET field (present only if REGID <= 1) specifies an offset relative to the Seqment (if SEGMENT INDEX ) 0) or to the FRAME (if SEGCt1EN'r INDEX = 0) ?[...]

  • Page 80

    8g8~ Object Module Formats MODULE ~ND RECORD ----(MODEND) *****************************///*********** * * * * • * * REC * RECORD * MOD * START * CHK • * TYP * LENGTH * TYP * ADDRS * SUM * * 8AH * • * * * * * * * * * *****************************///*********** . 1 , +conditional+ Version 4.8 This record serves two purposes. It denotes module a[...]

  • Page 81

    8086 Object Module Formats Version 4.8 'rhe START ADDRS field (present only if MATTR is 1 or 3) has either of the following formats: ***********///*********///***************** * * * * * * END * FRAME * TARGET * TARGET * * DAT * DATU~ * DATUM * D1S- * * * * * PLACEMENT * * * * * * ***********///*********///***************** I I I I +conditiona[...]

  • Page 82

    8~8~ Object Module Formats LIBRARY HEADER RECORD -------fCfSHED)------ Version 4.0 ************************************************************* * * * * * * * * REC * RECORD * MODULg * BLOCK * BYTE * CHK * * TYP * LENGTH * COUNT .* NUMBER * NUMBER * SUM * * A4H * * * * * * * * * * * * * ************************************************************* [...]

  • Page 83

    8086 Object Module Formats LIBRARY. MODULE NAMES RECORD (LiSNAM) ***********************///*********** * * * * * * REC * * TYP * * A6H * * * RECORD LENGTH * * * * MODULE NAME * CHK * * SUM * * * * * ***********************///*********** I I +-repeated--+ Version 4.0 This record qives the names of all the modules in the library. The names are qiven [...]

  • Page 84

    808~ Object Module Formats LIBRARY MODULE LOCATIONS RECORD ------~-.- (LIBLOC) ************************************************* * * * * * * * REC * RECORD * BLOCK * BYTE * CHK * * TYP * LENGTH * NUMBER * NUI~BER * SUI., .. * ASH * * * * * * * * * * * ************************************************* +--------reoeated-------+ Version 4."0 This[...]

  • Page 85

    8086 Object Module" Formats version 4.8 LIBRARY DICTIONARY R~CORD -- ..... .-.- (LIBDIC) ***********************///***************** * * * * * * * REC * RECORD * PUBLIC * * CHK * * TYP * LENGTH * NAME * 00H * SUM * * AAH * * * * * * * * * * * ***********************///***************** I I I +-re~eated--+ I +----repeated-----+ This record libr[...]

  • Page 86

    8086 Object Module Formats Version 4.0 COMMENT RECORD (COMENTf--- ***********************************///*********** * * * * * * * REC * RECORD * COM~ENT * * CHK * * TYP * LENGTH * TYPE * COM~ENT * SUM * * 8SH * * * * * * * * * * * ***********************************///*********** This record allows information in object text. translators to include[...]

  • Page 87

    8086 Object Module Formats Version 4.8 COM(t1ENT This field provides the commentary information. P7[...]

  • Page 88

    SgS6 Object Module Formats APPENDIX 1 NUMERIC LIST OF RECORD TYPES ae ~E RHEADR 70 REGINT 72 REDATA 74 RIDATA 76 OVLDEF 78 ENOREC 7A BLKOEF 7C BLKEND 7E DEBSY~ 80 THEADR 82 LHEADR 84 PEOATA 86 PIDATA 88 COJ'ltENT 8A MOOEND BC EXTDEF 8E TYPDEF 9" PUBDEF 92 LOCSY~ 94 LINNUM 9t; LNAMES 98 SEGDEF 9'" GRPDEF 9C FIXUPP 9E (none) A0 LE[...]

  • Page 89

    8086 Object Module Formats Version 4.8 APPENDIX 2 TYPE REPRESENTATIONS The leaves in the following diagrams may be Numeric Leaves without relations, Strinq Leaves, Index Leaves or Null Leaves. Andleaves and Orleaves are not supported at this time. Types may be defined by branches of the followinq forms: +------~~+----~-----+---~~----------+ I SCALA[...]

  • Page 90

    8086 Object Module Formats Version 4. +----~------+-~-----+ I PARAMETER I ~type I +--~-~------+-----+-------+-~-~~-----+---~--~~~~---------~----+-------+ I PROCEDURE I nil I ~type I (return) , (number of parameters) I Alist I +~----~-----+--~--+-------+----------+-----------~------------+-~-----+ +-------+-----+---~------+ I LABEL I nil I (return) [...]

  • Page 91

    8086 Object Module Formats version 4.e APPENDIX 3 SYNTAX DIAGRAMS +------------+ --+-->1 sequence 1 I +----------+ I . I +---------+ 1-->1 library 1 +---------+ sequence +-- ... -----+ --+-->1 module 1--+--> A + ___ ~ ___ _+ 1 +------~--~----~+ library -~~( LIBHED )--+---------------+-->( LIBNAM )-->( LIBLOC )-->( LIBDIC )-->[...]

  • Page 92

    tmod -->( Imod 8086 Object Module Formats Version 4"" +---~~---- ... ---+ +------------+ THEADR ) -> I sqr table ,-+---~~--~---+--+---~~-------~---+->I modtail 1-- +-----------+ +~ .. ---.----~ ... +-------------+ 1 1<-+ +-1 component +------------+ +---------+ +--~- ... ----+ -->( LHEADR )->1 sgr table 1-+-----------+--[...]

  • Page 93

    808~ Object Module Formats sqr _table +-------~-+ -->1 seq qrp 1--+---------------+--> + ____ ~_~ __ + I ________ A +-->( REGINT )--+ sgor _table +----~ .... ---+ -->1 seq qrp 1--+---------------+--+---------------+--> +----~----+ ~ ----~--- I f ~~-~~--~ ~ +--( OVLDEF )<--+ +-->( REGINT )--+ ----- ...... -- I --------- I +--( L[...]

  • Page 94

    8986 Object ~odule Pormats o _component --~-+---------~~--+--+-~-----------~------+-->( ENOREe )--> ~ +--~---+ , - +-~--~--------+ I -----~-- +--1 data 1<--+ +--1 t_component 1<--+ +~---~~+ +------~------+ t. _component -->( 'fHEADR )--+------------------+--> A +_ ... _---------- 1 1<--+ +--1 compOnent +-----------+ compon[...]

  • Page 95

    8e8~ Object Module Formats iata +---------------+ --+-->1 content deE 1---+--> I + ____ ~ ___ = ____ + A I +------------+ I +-->1 thread def 1--->+ I +----~--.:----+ I I -------- I +---->( TYPDEF )----->+ t -------- I , -------- I +---->( PUBDEF )----->+ I --~----~ I I -----~-- I +---->( EXTDEF )----->+ .. _------ --+-[...]

  • Page 96

    88.8~ Obj ect Mod ule Pormats content def --+-->( LIDATA )---+--+---------------+--> I ---~-~-- - A ~--~~--- I I -------- I +--( FIXUPP )<--+ +--> ( LEDATA ) -->+ ------- I ---~-~-- I I ---~---- I +-->( PIDATA )-->+ , ----~--- I I -------- I +-->( PEDATA )-->+ I ----~~-- I I -------- I +-->( RIDATA )-->+ I --~-~--- [...]

  • Page 97

    808~ Object Module Formats Version 4.9 APPENDIX 4 EXAMPLES OF FIXU~S This appendix was originally written in November 1977, and supplemented a paper, now obsolete, called "Overview of Proposed 8086 Fixupsd. It is included here because it provides copious examples of fixups in pictorial represe~tation, and therefore is an aid to understandinq t[...]

  • Page 98

    868~ Object ~odule Formats Version 4.a PART 1. SELF-RELATIVE REFERE~CES PPPPPPPPPPPPPPPPPPPPPP <- PSEG -> P P p- - - - - - - - - - p <- PP p p P P p p p +------~------+ P <- PT P TARGET P P +-----~ .. - ... -- .. -+ P P P P P p P P P p P p +--~.----------+ p P LOCATION P P + .......... ~- .... ----- .. + P P P P P P P P P P P P P p P P [...]

  • Page 99

    909~ Object Module Formats Version 4.0 1 Self-Relative Intraseq~ent References LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL L L L L L L L +--------------+ L L TARGET L L +----~----~---~+ L L L L L L L L L L L L L L L L +--------~--------~-+ L L LOCATION L L +~--------~---------+ L L I L L I L L I L L I L L V L L +--------------+ L L TARGET L L +-~~~----------+ [...]

  • Page 100

    808~ Object Module Formats 1.2 Self-Relative Interseqment References Example: Self-relative jump or call to another segment. A LLLLLLLLLLLLLL <- pp B LLLLLLLLLLLLLL L L L L L +--_ ...... _--+ L L L L LOC ,-----~------- L L L +--.-------+ L I L +--------+ L L L ---------->1 TARGET I L L L L +~----- ... -+ L L L L L LLLLLLLLLLLLLL LLLLLLLLLLLLL[...]

  • Page 101

    8086 Object Module Formats Version 4.' ~OCA'rE OPERATION: At LOCATE time these various sample possibilities can be detec,ted': L. PPPPPPPPPPPPPPPPPP 2. PPPPPPPPPPPPPPPPPP 3. PPPPPPPPPPPPPPPPPP P P P P P P P LLLLLLLLLLLLLL P <- pp P LLLLLLLLLLLLLL P <- pp. P LLLLL'LL·LLLLLLL P (- PI P L~ L P P LA L P P'LA' L P P [...]

  • Page 102

    808~ Object Module Formats Version 4.~ Oiaqrams land 2 show valid fixups. In diaqram 3, the TARGET is not in the defined PSEG. A warning will be qiven by LOCATE. In diagram 4, if the choice for PSEG is chanqed from SICA) to SICS) then the fixup can be made, as in diagram 5, if the displacement is qreater than 32K a ·clever- fixup, shown in diaqram[...]

  • Page 103

    8086 Object Module Formats Version 4.8 3 Self-Relative Reference To An EXTERNAL Symbol A LLLLLLLLLLLLLL (- PP ? •••••••••••••• L L • • L +--------+ L •••••••••••• L I LOC 1-------------------->. SYM •• L +--------+ L L , L LLLI.LLLLLLLLLL FIXUP"REPRESENTATI IN: LOCATION: OFFSET or [...]

  • Page 104

    S886 Object Module Formats Version 4. CASE 1: EX'fERNAL symbol (SYM) is found (by LINK) to be in the same LSEG as the reference. The followin1 four cases exist. Assume that PSEG is sgecified as .. PSeG: LOCATION". PPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPP P P P P p P P P P P P P P LLLLLLLLLLLLLL P P LLLLLLLLLLLLLL P P L + .. ---~---+ L P <[...]

  • Page 105

    8~86 Object Module Formats Version 4.1 CASE 2: EXTERNAL symbol (SYM) is found to be in a different LSEG, B. The followinq diaqram then applies and LINK converts the fixup to: A LOCATION: (no change) PSEG: (no chanqe) TARGET: SI(8) ,dl or SI(8) where dl is app~ied to LOCATION depending on original TARGET specification. LLLLLLLLLLLLLL L L L L L L L +[...]

  • Page 106

    8086 Object Module Formats Version 4.1 CASE 3: EXTERNAL symbol (SYM) is found (by LINK) to be absolute. LINK will chanqe the fixup to the followinq: LOCATION: same PSEG: same TARGET: pi (SYM) ,d(SYM) where pI and d are from a PUBLIC DECLARATIONS record or pt(SYM), and d(SYM) is applied to LOCATION. LOCATE OPERATION: At LOCATE time, LOCATE knows the[...]

  • Page 107

    8086 Object Module Formats l.4 (8089) Self-Relative Reference To An EXTERNAL Symbol A LLLLLLLLLLLLLL <- PP ? •••••••••••••• L L • • L +--------+ L •••••••••••• L I LOC 1-------------------->. SYM •• L +--------+ L L L LLLLLLLLLLLLLL FIXUP REPRESENTATION: LOCATION: OFFSET . ..........[...]

  • Page 108

    808~ Object Module Formats Version 4, CASE 1: EXTERNAL symbol (SYM) is found (by LINK) to be in a different LSEG, B. LINK OPERATION: LINK will change the above fixup to the fo110win~: LOCATION: (no change) PSEG: (no change) TARGET: SI(8) ,d1 wheredl is equal to the sum of d (if any) and the symbol offset. A LLLLLLLLLLLLLL B LLLLLLLLLLLLLL L L L L I[...]

  • Page 109

    8086 Object Module Formats Version 4.0 Diaqrams land 2 show two commom cases. R&L attempts to inform the user of any erroneous self-relative references (TARGET not within 32K from LaC). The 'symbol beinq referenced must be within the defined LSEG independent of the value at LOCATION to be applied: EXAMPLES: J~P SYM + 10 or JMP SYM - 2 The [...]

  • Page 110

    8986 Object Module Formats Version 4.t? CAse 2: EXTERNAL symbol (Sy~) is found (by LINK) to be absolute. LINK~OPERA;rION LINK will chanqe the fixup to the following: LOCATION: (no chanqe) PSEG: (no chanqe) TARGET: pI (SYM) ,o(SYM) + d where pi and 0 are from a PUBLIC DECLARATIONS record and the sum is performed as in Case 1. LOCATE OPERATION: At LO[...]

  • Page 111

    8086 Obj ect Mod ule Fo rmats Version 4.0 PART 2. SEGMENT RELATIVE REFERENCES MMMMMMMMIMMMMMMMMMMMM~MMMMMMMMMMMMM 090008 ~ I M M I M M I M M , M M I-F8VAL ~ 11 I M M V f't1 M PPPPPPPPPPPIPPPPPPPP <- canonic PSEG of L M P I p M M P , P !'1 M P LLLLLLLLILLLLL P <- PP ..., .'4 P L , L P '" M P L FOVAL-I L P M M P L V L [...]

  • Page 112

    8086 Object Module Formats Version 4.' 2.1 Seqment-Relative Pointer Reference (lonq call) With ~o GroupinQ and 80th LSEG's Created In Same Translation A LLLLLLLLLLLLLL B LLLLLLLLLLLLLL L L L L L L L L L L L L L +---------+ L L +------.---+ L L LOC I--~---------------->I TARGET I L L +--------+ L. L +-----_.-_+ L L L L L L L L L LLLLLLL[...]

  • Page 113

    8086 Object Module Formats Version 4.0 LOCATE OPERATION: At LOCATE time: 1. The BASE (FBVALl is determined by the PSEG directive as the canonic PSEG defined by PP. 2. The offset is a positive value, less than or equal to ~4K, from the determined PSEG. LOCATE includes as part of the offset, FOVAL, the difference between the absolute location of the [...]

  • Page 114

    8086 Object Module Formats Version 4.9 2.2 Seqment-Relative Pointer Reference (lonq call) wil.h No Groupinq Where Reference is to an EXTERNAL Symbol A LLLLLLLLLLLLLL ? · . . . . . . . . . . . . . L L L +---.---~-+ L • . . . . . . . . . . · L LOe ,---~----.------------>. SYM • · L +--- .. ----+ L • . . . . . . . . . . · L L LLLLLLLLLLLL[...]

  • Page 115

    898~ Object ~odule Formats Version 4.0 CASE 1: EXTERNAL symbol (SYM) is found (by LINK) to be in the same LSEG as the reference. An example would be a reference to data (ROM DATA) stored in CODE seqment A. The PSEG is then determined by LINK to be SI(A) as the default, since no groupinq is specified. The followinq two cases may be found: PPPPPPPPPP[...]

  • Page 116

    808~ Object Module Formats Version 4.8 CASE 2: EXTERNAL symbol (SYM) is found (by LINK) to be in a different LSEG, B. This case becomes the same fixup described in (2.1) • CASE 3: Ex·rERNAL symbol (SYM) is found (by LINK) to be absol ute. The PUBLIC declaration record for SYM will define an absolute address of the form PSEG, OFFSET. LINK chanqes[...]

  • Page 117

    808~ Object Moduie Formats Version 4.8 2.3 Seqment-Relative Pointer Reference (lonq call) With Groupinq This fixup is' much the same as the fixups described in (2.1) and (2.2). The only difference is that the PSEG is always specified to be a qroup base. The fixup would appear as one of the followinq (also see diaqram below): Group A LOCATION: [...]

  • Page 118

    8086 Object Module Formats Version 4.!.J 2.4 Seqment-R~lative Offset Reference (data reference) With No Groupinq And Both LSEG's Created In The Same Translation Diagram in (2.1) can be used. LOCATION: OFFSET PSEG: TARGET (this is the most common choice) TARGET: SI(8) ,dl or SI(8) where dl is applied to the LOCATION Note that this fixup is exac[...]

  • Page 119

    8086 Object Module Formats 2.5 Segment Relative Base Reference (used for initial ization) seqment Version 4." reqister This fixup is much the same as the Seqment-Relative Pointer Reference described in (2.1). The only difference is that the offset part, FOVAL, of the fixup is not required. FIXUP REPRESENTATION: LOCATION: BASE PSEG: TARGET TARG[...]

  • Page 120

    [...]

  • Page 121

    [...]

  • Page 122

    INTEL CORPORATION, 3065 Bowers Avenue, Santa Clara, California 95051 (408) 987-8080 Printed in U.S.A.[...]