summaryrefslogtreecommitdiff
path: root/static/v10/man5/a.out.5
diff options
context:
space:
mode:
Diffstat (limited to 'static/v10/man5/a.out.5')
-rw-r--r--static/v10/man5/a.out.5150
1 files changed, 150 insertions, 0 deletions
diff --git a/static/v10/man5/a.out.5 b/static/v10/man5/a.out.5
new file mode 100644
index 00000000..15cc5e8e
--- /dev/null
+++ b/static/v10/man5/a.out.5
@@ -0,0 +1,150 @@
+.pa 1
+.he 'A.OUT (V)'3/15/72'A.OUT (V)'
+.ti 0
+.nf
+NAME a.out -- assembler and link editor output
+.fi
+.sp
+.ti 0
+DESCRIPTION
+.br
+.in 8
+a.out_____
+is the output file of the assembler as__ and the link editor ld__.
+In both cases, a.out_____ may be executed provided there
+were no errors and no unresolved external references.
+.sp
+This file has four sections:
+a header, the program and data text, a symbol table, and relocation bits
+(in that order).
+The last two may be empty
+if the program was loaded
+with the "-s" option
+of ld__ or if the symbols and relocation have been
+removed by strip_____.
+
+The header always contains 8 words:
+
+.in +6
+.ti -3
+1 A magic number (407(8))
+.ti -3
+2 The size of the program text segment
+.ti -3
+3 The size of the initialized data segment
+.ti -3
+4 The size of the uninitialized (bss) segment
+.ti -3
+5 The size of the symbol table
+.ti -3
+6 The entry location (always 0 at present)
+.ti -3
+7 The stack size required (0 at present)
+.ti -3
+8 A flag indicating relocation bits have been suppressed
+
+.in -6
+The sizes of each segment are in bytes but are even.
+The size of the header is not included in any of the other sizes.
+
+When a file produced by the assembler or loader is
+loaded into core for execution, three segments are
+set up: the text segment, the data segment,
+and the bss (uninitialized data) segment,
+in that order.
+The text segment begins at the lowest
+location in the core image; the header is not loaded.
+The data segment begins immediately after the text
+segment, and the bss segment immediately after
+the data segment.
+The bss segment is initialized by 0's.
+In the future the text segment will be write-protected
+and shared.
+
+The start of the text segment in the file is 20(8);
+the start of the data segment is 20+S9t8 (the size of the text)
+the start of the relocation information is 20+S9t8+S9d8;
+the start of the symbol table is 20+2(S9t8+S9d8) if the
+relocation information is present, 20+S9t8+S9d8 if not.
+
+The symbol table consists of 6-word entries. The first
+four contain the ASCII name of the symbol, null-padded.
+The next word is a flag indicating the type of symbol.
+The following values are possible:
+
+ 00 undefined symbol
+ 01 absolute symbol
+ 02 text segment symbol
+ 03 data segment symbol
+ 04 bss segment symbol
+ 40 undefined external (.globl) symbol
+ 41 absolute external symbol
+ 42 text segment external symbol
+ 43 data segment external symbol
+ 44 bss segment external symbol
+
+Values other than those given above may
+occur if the user has defined some of his own instructions.
+
+The last word of a symbol table entry contains the value of the symbol.
+
+If the symbol's type is undefined external,
+and the value field is non-zero,
+the symbol is interpreted by the loader ld__ as
+the name of a common region
+whose size is indicated by the value of the
+symbol.
+
+The value of a word in the text or data portions which is not
+a reference to an undefined external symbol
+is exactly that value which will appear in core
+when the file is executed.
+If a word in the text or data portion
+involves a reference to an undefined external symbol,
+as indicated by the relocation bits
+for that word,
+then the value of the word as stored in the file
+is an offset from the associated external symbol.
+When the file is processed by the
+link editor and the external symbol becomes
+defined, the value of the symbol will
+be added into the word in the file.
+
+If relocation
+information is present, it amounts to one word per
+word of program text or initialized data.
+There is no relocation information if the "suppress relocation"
+flag in the header is on.
+
+Bits 3-1 of a relocation word indicate the segment referred
+to by the text or data word associated with the relocation
+word:
+
+.in +6
+.ti -4
+00 indicates the reference is absolute
+.ti -4
+02 indicates the reference is to the text segment
+.ti -4
+04 indicates the reference is to the data segment
+.ti -4
+06 indicates the reference is to the bss segment
+.ti -4
+10 indicates the reference is to an undefined external symbol.
+
+.in -6
+Bit 0 of the relocation word indicates if on__ that the
+reference is relative to the pc (e.g. "clr x");
+if off___, the reference is to the actual symbol (e.g.,
+"clr *$x").
+
+The remainder of the relocation word (bits 15-4)
+contains a symbol number in the case of external
+references, and is unused otherwise.
+The first symbol is numbered 0, the second 1, etc.
+.sp
+.in 16
+.ti 0
+SEE ALSO as__,
+.ul
+ld, strip, nm, un(I)