Ich möchte vom C-Code ein Assembler Unterprogramm aufrufen. Habe dabei große Probleme hat jemand einen Tip für mich? Beim aufruf in C-Spy steht kein Code in meiner Assembler Routine. Danke Schicki
Mußt du Parameter übergeben? Liefert das UP Werte zurück? Dann mußt du wissen, wie der Compiler dieses tut und du mußt dich mit deinem ASM-Programm daran halten. Prinzipiell geht es so: void asm_test (){ #asm nop nop nop #endasm } Wie gesagt, daß ist der einfache Fall, keine Werte von und an die Funktion. Höllisch aufpassen mußt du, welche Register du benutzen darfst, weißt du es nicht, benutzte Register sichern/wiederherstellen. Bei CodeVision kann man sich recht einfach Register für ASM freihalten. globale Variable: unsigned char dummy1 @14 unsigned char dummy2 @15 R14 und 15 werden dann nicht vom Compiler benutzt, gibt zwar ne Warnung, daß die Variablen deklariert, aber nicht benutzt werden. Aber da kann man großzügig drüber weg sehen. Und als letztes: Warum willst du Assemblerroutinen einfügen? Was versprichst du dir davon? Ich benötige das wirklich nur ganz selten, die Wartbarkeit leidet auf jeden Fall darunter.
Dem ASM Programm werden ein pointer und eine integer Variable übergeben. Die Variablen stehen in R14,R12. Habe große problem beim Debuggen da der ASSembler code nicht compeliert wird. example 00fe ????? 0100 ????? ... ... Der ASM Code ist Harwarenahe und wurde von jemand anderen geschrieben.
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.