Folgendes C-Modul:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
Das compilieren und disassemblieren:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
Nach dem "rcall .", das 2 Byte Stack für i allokiert, fügt der Assembler ein Label mit dem nicht druckbaren Zeichen ^A ein. Die Länge des Labels / Symbols "L0^A" ist 3 Bytes.
Assembliert wurde mit Binutils 2.40.
Kann jemand sagen, wozu das gut ist? Ältere Binutils-Versionen machen das nicht. Je nach Quelle gibt's mehrfach das gleiche Label, ohne dass es irgendwelche Probleme zu machen scheint.
Das vom Compiler generierte Assembly enthält natürlich kein solches Label:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|