Forum: Mikrocontroller und Digitale Elektronik Assembler-Code unter C


von Heinz Eckert (Gast)


Lesenswert?

Weiß jemand, wie man Assembler-Code unter C einfügen kann?

von Rufus T. Firefly (Gast)


Lesenswert?

Benutze die Suchfunktion unter Verwendung des Suchbegriffs
"inline-assembler".

von Heinz Eckert (Gast)


Lesenswert?

Das habe ich schon versucht. Leider steht da nur: "Lets you execute ASM
commands in debug modus."

Also nichts Informatives, was mir helfen könnte.

Kennst du denn die Syntax, wie es gemacht wird?

von Rufus T. Firefly (Gast)


Lesenswert?

Ich meine nicht die Hilfefunktion Deines was-auch-immer-für-ein-Tool,
sondern die dieses Forums hier.

Eines der Ergebnisse davon:
http://www.mikrocontroller.net/wiki/Spezial:Search?search=inline-assembler

Im übrigen steht sowas in der Dokumentation des von Dir verwendeten
C-Compilers - da Du den nicht zu nennen gewillt warst, kann Dir auch
kein präziserer Hinweis gegeben werden.

von Heinz Eckert (Gast)


Lesenswert?

Danke für den Link.

Leider kann ich unter diesem nichts Informatives, d.h. Syntax, finden.
Trotzdem danke.

Ich arbeite mit dem C-Compiler der Firma Keil. Und wie gesagt unter
deren Hilfe finde ich auch nichts zum Thema Assembler-Einbettung in C.

von Rufus T. Firefly (Gast)


Lesenswert?

Ich will Dir nicht zu nahe treten, aber im "AVR-GCC-Tutorial", auf das
der von mir zitierte Link verweist, ist auch das hier enthalten:
http://www.mikrocontroller.net/wiki/AVR-GCC-Tutorial#Assembler_und_Inline-Assembler

Das sieht bei Deinem Keil-Compiler vermutlich anders aus, aber ohne zu
wissen, welcher es ist, kann ich Dir nur einige vage Hinweise geben.

http://www.keil.com/discuss/docs/thread1180.htm
http://www.keil.com/discuss/docs/thread2140.htm

und vor allem:

http://www.keil.com/support/docs/2308.htm

Ich denke, Du solltest besser suchen lernen. Ich hab' für obige Links
etwa drei Minuten gebraucht, obwohl ich nicht mit Keil-Compilern
arbeite.

von Peter D. (peda)


Lesenswert?

"Ich arbeite mit dem C-Compiler der Firma Keil."

Es gibt von Keil mindestens 4 Compiler (ARM, 8051, 251, C166).

Und wer behauptet, er findet weder in den Compiler-Handbüchern, noch
auf der exzellenten Keil-Webseite (Knowledgebase, Forum) etwas über die
verschiedenen Methoden Assembler zusammen mit C zu verwenden, der lügt.


Peter

von Heinz Eckert (Gast)


Lesenswert?

@ Peter

Danke. Habe über google auch grad den ersten von dir aufgeführten Link
gefunden. Leider hilft mir die dortige Information nicht viel weiter.

Die Informationen unter dem letzten Link sind allerdings Gold wert. Da
ist wenigstens mal eine ordentliche Syntax dargestellt.

#pragma src

void main(void){
   test();

#pragma asm
      JMP   $           ; endless loop
#pragma endasm
}

Denn nur mit asm geht´s nämlich nicht. Das muss schon in der Form
dastehen.

Oh so firm bin ich nun auch nicht, dass ich weiß, wieviele C-Compiler
es von Keil gibt. Habe damit nicht alltäglich Kontakt.

Ich arbeite mit dem 8051.

Der Nachteil an dieser Assembler-Einbettung ist leider, dass man keine
weitere C-Syntax verwenden darf, wenn ich es jetzt richtig
interpretiert habe. Müsste also dann alles in Assembler schreiben. Ein
Misch-Masch geht wohl nicht.

Vielen Dank noch mal.

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
Noch kein Account? Hier anmelden.