Sign in Join
Wiki copytemporary

The assembler output/fr: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: The assembler output/fr

OldNewLine
1+Retour au contenu [[FPC internals/fr|FPC internals]]
2+
3+## La sortie assembleur
4+
5+*(dernière mise à jour pour fpc version 1.0.x)*
6+
7+Tout le code est généré via une liste chaînée d'instructions spéciale. La base de ceci est un objet spécial, un assembleur abstrait qui implémente toutes les directives qui sont généralement implémentées dans les différents assembleurs disponibles sur le marché. Lorsque le générateur de code et l'analyseur génèrent la sortie finale, elle est générée sous forme de liste chaînée pour chacune des sections disponibles pour l'assembleur de sortie. Chaque entrée de la liste chaînée est soit une instruction, soit l'une des directives abstraites de l'assembleur.
8+
9+<http://www.pjh2.de/fpc/CompilerInternalsFigure11.png>
10+
11+### Organisatioin de la génération de l'assembleur
12+
13+Les différentes sections possibles trouvées dans la sortie sont les suivantes :
14+
15+| Nom de section interne | Description |
16+|------------------------|----------------------------------------------------|
17+| ExparAsmList | Liste temporaire |
18+| DataSegment | Variables initialisées |
19+| CodeSegment | Instructions et directives de code générales |
20+| DebugList | Informations de débogage |
21+| WithDebugList | ??????????????? |
22+| Consts read | Constantes seulement. |
23+| ImportSection | Symboles importés |
24+| ExportSection | Symboles exportés |
25+| ResourceSection | Données de ressource |
26+| RttiList | Données d'information de type à l'exécution (RTTI) |
27+| ResourceStringList | Données chaînes de ressource |
28+
29+Les directives suivantes pour l'assembleur abstrait qui existent actuellement.
30+
31+Type de noeuds de l'assembleur abstrait :
32+
33+**Type de noeud d'entrée**
34+
35+**Description**
36+
37+Ait_None
38+
39+Cette entrée dans la liste chaînée est invalide (cela ne devrait jamais arriver)
40+
41+Ait_Direct
42+
43+Sortie directe vers le fichier assembleur résultant (comme chaîne de caractères)
44+
45+Ait_String
46+
47+Chaîne courte avec une longueur prédéfinie
48+
49+Ait_Label
50+
51+Etiquette assembleur numérotée utilisée pour les sauts
52+
53+Ait_Comment
54+
55+Commentaire de sortie assembleur
56+
57+Ait_Instruction
58+
59+Instruction spécifique de processeur
60+
61+Ait_DataBlock
62+
63+Bloc de données non initialisées (BSS)
64+
65+Ait_Symbol
66+
67+L'entrée représente un symbole (exporté, importé ou un autre type de symbole public).
68+
69+Types possibles: NONE, EXTERNAL, LOCAL et GLOBAL p.ex. : Un symbole suivi par un Ait_const_32bit
70+
71+Ait_Symbol_End
72+
73+Symbole fin (par exemple la fin d'une routine)
74+
75+Ait_Const_32bit
76+
77+Constante 32-bit initialisée(sans un symbole)
78+
79+Ait_Const_16bit
80+
81+Constante 16-bit initialisée (sans un symbole)
82+
83+Ait_Const_8bit
84+
85+Constante 8-bit initialisée (sans un symbole)
86+
87+Ait_Const_symbol
88+
89+????????????
90+
91+Ait_Real_80bit
92+
93+(x86) Constante en virgule flottante 80-bit initialisée (sans symbole). Note type REAL obsolète.
94+
95+Ait_Real_64bit
96+
97+Constante en virgule flottante en double précision IEEE initialisée (sans symbole)
98+
99+Ait_Real_32bit
100+
101+Constante en virgule flottante en simple précision IEEE initialisée (sans symbole)
102+
103+Ait_Comp_64bit
104+
105+(x86) Entier 64-bit en virgule flottante (comp) initialisé (sans symbole)
106+
107+Ait_Align Alignment
108+
109+Directive
110+
111+Ait_Section Section
112+
113+Directive
114+
115+Ait_const_rva
116+
117+(Win32)
118+
119+Ait_Stabn
120+
121+Information de débogage stabs (valeur numérique)
122+
123+Ait_Stabs
124+
125+Information de débogage stabs (chaîne de caractères)
126+
127+Ait_Force_Line stabs
128+
129+Ligne d'information de débogage
130+
131+Ait_Stab_Function_Name
132+
133+Nom de routine des informations de débogage stabs
134+
135+Ait_Cut
136+
137+Coupure dans les fichiers assembleur (utilisé pour la liaison intelligente)
138+
139+Ait_RegAlloc
140+
141+Information de débogage pour l'allocateur de registre
142+
143+Ait_Marker
144+
145+????????????
146+
147+Ait_Frame
148+
149+(Alpha)
150+
151+Ait_Ent
152+
153+(Alpha)
154+
155+Ait_Labeled_Instruction
156+
157+(m68k)
158+
159+Ait_Dummy
160+
161+Inutilisé - Ne devrait jamais apparaître
162+
163+---
164+*From the Free Pascal wiki, page "The assembler output/fr", as it stood on 2021-03-20 after a change by E-ric, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history