Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2816 clevermous 1
; Structures describing fasm symbol files.
2
define FAS_SIGNATURE 1A736166h
3
virtual at 0
4
fas_header:
5
.signature      dd      ?       ; Signature 1A736166h.
6
.major          db      ?       ; Major version of flat assembler.
7
.minor          db      ?       ; Minor version of flat assembler.
8
.headersize     dw      ?       ; Length of header.
9
.input          dd      ?       ; Offset of input file name in the strings table.
10
.output         dd      ?       ; Offset of output file name in the strings table.
11
.strings_offs   dd      ?       ; Offset of strings table.
12
.strings_size   dd      ?       ; Length of strings table.
13
.symbols_offs   dd      ?       ; Offset of symbols table.
14
.symbols_size   dd      ?       ; Length of symbols table.
15
.preproc_offs   dd      ?       ; Offset of preprocessed source.
16
.preproc_size   dd      ?       ; Length of preprocessed source.
17
.asm_offs       dd      ?       ; Offset of assembly dump.
18
.asm_size       dd      ?       ; Length of assembly dump.
19
.section_offs   dd      ?       ; Offset of section names table.
20
.section_size   dd      ?       ; Length of section names table.
21
.symref_offs    dd      ?       ; Offset of symbol references dump.
22
.symref_size    dd      ?       ; Length of symbol references dump.
23
.size:
24
end virtual
25
 
26
virtual at 0
27
preproc_line_header:
28
; When the line was loaded from source, this field contains
29
; either zero (if it is the line from the main input file), or
30
; an offset inside the preprocessed source to the name of file,
31
; from which this line was loaded (the name of file is zero-ended
32
; string).
33
; When the line was generated by macroinstruction, this field
34
; contains offset inside the preprocessed source to the
35
; pascal-style string specifying the name of macroinstruction,
36
; which generated this line.
37
.source_name    dd      ?
38
; Bits 0-30 contain the number of this line.
39
; If the highest bit is zeroed, this line was loaded from source.
40
; If the highest bit is set, this line was generated by
41
; macroinstruction.
42
.line_number    dd      ?
43
; If the line was loaded from source, this field contains
44
; the position of the line inside the source file, from which it
45
; was loaded.
46
; If line was generated by macroinstruction, this field contains
47
; the offset of preprocessed line, which invoked the
48
; macroinstruction. If line was generated by instantaneous macro,
49
; this field is equal to the next one.
50
.line_offset    dd      ?
51
; If the line was generated by macroinstruction, this field
52
; contains offset of the preprocessed line inside the definition
53
; of macro, from which this one was generated.
54
.line_macro_offs dd     ?
55
; The tokenized contents of line.
56
.contents:
57
end virtual
58
 
59
virtual at 0
60
asm_row:
61
.out_offs       dd      ?       ; Offset in output file.
62
.preproc_offs   dd      ?       ; Offset of line in preprocessed source.
63
.this           dq      ?       ; Value of $ address.
64
.extended_sib   dd      ?       ; Extended SIB for the $ address, the first two bytes
65
                                ; are register codes and the second two bytes are
66
                                ; corresponding scales.
67
; If the $ address is relocatable, this field contains
68
; information about section or external symbol, to which
69
; it is relative - otherwise this field is zero.
70
; When the highest bit is cleared, the address is
71
; relative to a section, and the bits 0-30 contain
72
; the index (starting from 1) in the table of sections.
73
; When the highest bit is set, the address is relative
74
; to an external symbol, and the bits 0-30 contain the
75
; the offset of the name of this symbol in the strings
76
; table.
77
.this_base      dd      ?
78
.this_type      db      ?       ; Type of $ address value (as in table 2.2).
79
.code_type      db      ?       ; Type of code - possible values are 16, 32, and 64.
80
; If the bit 0 is set, then at this point the assembly
81
; was taking place inside the virtual block, and the
82
; offset in output file has no meaning here.
83
; If the bit 1 is set, the line was assembled at the
84
; point, which was not included in the output file for
85
; some other reasons (like inside the reserved data at
86
; the end of section).
87
.flags          db      ?
88
.this_high      db      ?       ; The higher bits of value of $ address.
89
.sizeof:
90
end virtual