Annotation of researchv10dc/dist/man/v3/man5/a.out.5, revision 1.1.1.1

1.1       root        1: .pa 1
                      2: .he 'A.OUT (V)'3/15/72'A.OUT (V)'
                      3: .ti 0
                      4: .nf
                      5: NAME           a.out  --   assembler and link editor output
                      6: .fi
                      7: .sp
                      8: .ti 0
                      9: DESCRIPTION
                     10: .br
                     11: .in 8
                     12: a.out_____
                     13: is the output file of the assembler as__ and the link editor ld__.
                     14: In both cases, a.out_____ may be executed provided there
                     15: were no errors and no unresolved external references.
                     16: .sp
                     17: This file has four sections:
                     18: a header, the program and data text, a symbol table, and relocation bits
                     19: (in that order).
                     20: The last two may be empty
                     21: if the program was loaded
                     22: with the "-s" option
                     23: of ld__ or if the symbols and relocation have been
                     24: removed by strip_____.
                     25: 
                     26: The header always contains 8 words:
                     27: 
                     28: .in +6
                     29: .ti -3
                     30: 1  A magic number (407(8))
                     31: .ti -3
                     32: 2  The size of the program text segment
                     33: .ti -3
                     34: 3  The size of the initialized data segment
                     35: .ti -3
                     36: 4  The size of the uninitialized (bss) segment
                     37: .ti -3
                     38: 5  The size of the symbol table
                     39: .ti -3
                     40: 6  The entry location (always 0 at present)
                     41: .ti -3
                     42: 7  The stack size required (0 at present)
                     43: .ti -3
                     44: 8  A flag indicating relocation bits have been suppressed
                     45: 
                     46: .in -6
                     47: The sizes of each segment are in bytes but are even.
                     48: The size of the header is not included in any of the other sizes.
                     49: 
                     50: When a file produced by the assembler or loader is
                     51: loaded into core for execution, three segments are
                     52: set up: the text segment, the data segment,
                     53: and the bss (uninitialized data) segment,
                     54: in that order.
                     55: The text segment begins at the lowest
                     56: location in the core image; the header is not loaded.
                     57: The data segment begins immediately after the text
                     58: segment, and the bss segment immediately after
                     59: the data segment.
                     60: The bss segment is initialized by 0's.
                     61: In the future the text segment will be write-protected
                     62: and shared.
                     63: 
                     64: The start of the text segment in the file is 20(8);
                     65: the start of the data segment is 20+S9t8 (the size of the text)
                     66: the start of the relocation information is 20+S9t8+S9d8;
                     67: the start of the symbol table is 20+2(S9t8+S9d8) if the
                     68: relocation information is present, 20+S9t8+S9d8 if not.
                     69: 
                     70: The symbol table consists of 6-word entries.  The first
                     71: four contain the ASCII name of the symbol, null-padded.
                     72: The next word is a flag indicating the type of symbol.
                     73: The following values are possible:
                     74: 
                     75:    00  undefined symbol
                     76:    01  absolute symbol
                     77:    02  text segment symbol
                     78:    03  data segment symbol
                     79:    04  bss segment symbol
                     80:    40  undefined external (.globl) symbol
                     81:    41  absolute external symbol
                     82:    42  text segment external symbol
                     83:    43  data segment external symbol
                     84:    44  bss segment external symbol
                     85: 
                     86: Values other than those given above may
                     87: occur if the user has defined some of his own instructions.
                     88: 
                     89: The last word of a symbol table entry contains the value of the symbol.
                     90: 
                     91: If the symbol's type is undefined external,
                     92: and the value field is non-zero,
                     93: the symbol is interpreted by the loader ld__ as
                     94: the name of a common region
                     95: whose size is indicated by the value of the
                     96: symbol.
                     97: 
                     98: The value of a word in the text or data portions which is not
                     99: a reference to an undefined external symbol
                    100: is exactly that value which will appear in core
                    101: when the file is executed.
                    102: If a word in the text or data portion
                    103: involves a reference to an undefined external symbol,
                    104: as indicated by the relocation bits
                    105: for that word,
                    106: then the value of the word as stored in the file
                    107: is an offset from the associated external symbol.
                    108: When the file is processed by the
                    109: link editor and the external symbol becomes
                    110: defined, the value of the symbol will
                    111: be added into the word in the file.
                    112: 
                    113: If relocation
                    114: information is present, it amounts to one word per
                    115: word of program text or initialized data.
                    116: There is no relocation information if the "suppress relocation"
                    117: flag in the header is on.
                    118: 
                    119: Bits 3-1 of a relocation word indicate the segment referred
                    120: to by the text or data word associated with the relocation
                    121: word:
                    122: 
                    123: .in +6
                    124: .ti -4
                    125: 00  indicates the reference is absolute
                    126: .ti -4
                    127: 02  indicates the reference is to the text segment
                    128: .ti -4
                    129: 04  indicates the reference is to the data segment
                    130: .ti -4
                    131: 06  indicates the reference is to the bss segment
                    132: .ti -4
                    133: 10  indicates the reference is to an undefined external symbol.
                    134: 
                    135: .in -6
                    136: Bit 0 of the relocation word indicates if on__ that the
                    137: reference is relative to the pc (e.g. "clr x");
                    138: if off___, the reference is to the actual symbol (e.g.,
                    139: "clr *$x").
                    140: 
                    141: The remainder of the relocation word (bits 15-4)
                    142: contains a symbol number in the case of external
                    143: references, and is unused otherwise.
                    144: The first symbol is numbered 0, the second 1, etc.
                    145: .sp
                    146: .in 16
                    147: .ti 0
                    148: SEE ALSO       as__,
                    149: .ul
                    150: ld, strip, nm, un(I)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.