Hallo! Meine Ausgangslage ist die folgende: Ich habe ein fertiges C - Programm vorliegen und möchte nun in einem abschließenden Schritt noch einige Funktionen als Inline - Assembler - Code einbinden (Warum? Da das Projekt eine Aufgabenstellung ist und diese Funktionen aus Übungszwecken eben in Inline - Assembler eingebunden werden sollen, "um das auch einmal gemacht zu haben"). Wie ich dies grundsätzlich bewerkstellige, weiß ich (aufgrund der Tutorials) mitlerweile. Meine Assembler - Kenntnisse sind jedoch (leider) sehr beschränkt. Meine Idee wäre jetzt an dieser Stelle, die Befehle einfach aus dem List - File der Reihe nach abzuschreiben, also mittels "asm volatile ( ... ); " und dann noch die jeweiligen Funktionen als "inline" deklarieren. Führt mich das ans Ziel ober habe ich da einen gewaltigen Dnekfehler drinnen? Besten Danke, Alex
Alexander Klinkan schrieb: > Führt mich das ans Ziel ober habe ich da einen gewaltigen Dnekfehler > drinnen? Ja, das führt zum Ziel, ist aber nicht Sinn der Sache. Und dein Lehrer/Prof wird das auch gleich erkennen. Du musst auch berücksichtigen, dass der Compiler ggf Optimierungen fährt: also auch Codes miteinander verschmilzt, den du nicht einfach so heraustrennen kannst. Wenn Du aber das Listfile ansiehst, den Code verstehst und ihn dann (idealerweise in eigenen Worten übernimmst) wäre das schon OK. Aber dann auch wirklich verstehen!
Funktionen mit inline Kennzeichnung sind was anderes als Inlineassemblercode. Ja, du kannst ASM-Code aus dem Listfile nehmen und als Inlineassembler verpacken. Das ist halt Cheaten. Cheaten kann auffallen, wenn du hochnotpeinlich nach dem Sinn des ASM-Teils befragt wirst. Normalerweise erkennt ein erfahrener ASM-Progger händisch erstellten ASM-Code. Technisch gesehen musst du aufpassen, dass die richtigen Daten in den richtigen Registern landen und dass der Compiler mitbekommt, welche Register ausserhalb seiner Kontrolle manipuliert wurden. Wenn eine Funktion nicht mehr als C-Code vorhanden ist, könnte der Compiler ja auf die Idee kommen Register anderwärtig zu benutzen. Ich denke eine 1:1 Übernahme scheitert in den meisten Fällen.
danke für die schnellen antworten! ich sehe schon, ich werde mich noch etwas genauer mit der thematik beschäftigen müssen, die ausgaben im list file werde ich trotzdem als anhaltepunkte verwenden. grüße von alex
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.