Versuch mal das hier. Das ist über DJGPP (gcc für DOS), sollte aber
eigentlich mit allen gcc Versionen funktionieren (wenn es denn
funktioniert, probiert hab ichs nicht:):
http://www.delorie.com/djgpp/v2faq/faq8_20.html
Hallo,
das kommt dem, was ich zu erreichen suche schon sehr ähnlich allerdings
hat der Linker da noch nicht zugeschlagen und daher enthalten alle
Adressen immer noch 0x00. Außerdem ist mir aufgefallen, dass manchmal
die Assembler-Befehle vor der C-Zeile im Listing kommen. Ich werd mal
g00gle fragen, jetzt habe ich ja in Form der Argumente, die bei DJGPP
vorkommen, neue Suchwörter.
- C. Lechner
Also ich habs jetzt auch mal probiert, da kommen schon Adressen != 0,
aber selbstverständlich sind das noch nicht die fertig aufgelösten
Adressen, sondern der Programmzähler von gas während er das einzelne
Modul assembliert.
Kann sein dass die Assemblerzeilen und der C Code durcheinandergeworfen
werden, das passiert scheinbar bei gcc, wenn man Debuginformationen und
Optimierungen eingeschaltet hat (viele Compiler lassen es auch gar
nicht erst zu, Code zu optimieren und mit Debuginfos zu versehen).
Falls du -O, -O3 oder ähnlich angegeben hast, kannst du das ja mal
weglassen, aber dann sieht der Code natürlich dann anders aus, was
vermutlich nicht Sinn der Sache ist.
Brauchst auch nicht unbedingt nach DJGPP zu suchen, lies doch einfach
die Dokumentation von gcc und der binutils:
http://www.gnu.org/software/binutils/manual/http://gcc.gnu.org/onlinedocs/
Ansatzpunkt wären da die Optionen die auf der DJGPP Site angegeben
sind...
Hallo,
Die -O3, die ich tatsächlich im Makefile hatte, hab ich wieder
rausgemacht, sollte auch nur ein Test sein. In der Entwicklungsphase
tut man ja normalerweise erst dann auf Optimierung gehen, wenn man das
Produkt fehlerfrei hat bzw. glaubt dass es so ist.
Mit den "Adressen" meinte ich die Zieladressen von call, lds etc...
Die Adressen der OP-Codes sind doch AFAIK nur relativ zum Anfang des
Moduls, oder?
Werde mal die Doku zu den binutils, speziell zum "as" lesen, weil der
das Listing ja erzeugt.
THNX
- Christoph Lechner
>Mit den "Adressen" meinte ich die Zieladressen von call, lds etc...>Die Adressen der OP-Codes sind doch AFAIK nur relativ zum Anfang des>Moduls, oder?
Jo, das ist richtig. Hab dich da falsch verstanden mit den Adressen.