Wie funktioniert die Programmumwandlung?

Gast #226774
Hallo zusammen,
ich habe eine allgemeine Frage:

Ich programmiere ja mit Bascom Basic.
Was passiert jetzt, wenn ich auf "compilieren" klicke? Wandelt er
meinen Code in Assembler oder in Maschinencode um? Was ist der
Unterschied von Assembler und Maschinencode? Was gelangt über die
ISP-Schnittstelle zum Controller?
Wie funktioniert das alles?

Herzliche Grüsse
Mario
Gast
Hallo,

beim compiliren passieren mehrere sachen. in der reinfolge schaut das
in etwa so aus:

1. läuft ein precompiler, der bindet extern benutzten quelltext mit ein
und bearbeitet precompilerderektiven z.b. ersetzt er constantennamen
durch ihren wert. er filtert auch unnötige sachen herraus wie komentare
herraus.
2. jetzt kommt der compiler, der verarbeitet den mundgerechten
quelltext des precompilers und übersetzt ihn in einen maschinencode der
aber noch nicht lauffähig ist.
3. danach kommt der linker, der fügt die biblotheken hinzu die im
quelltext benutzt werden und baut daraus ein lauffähiges programm,
welche dann im fall AVR meist im Intel-hex format gespeichert werden.
4. diese Intel-hex datei wird dann mit einen entsprechenden programm in
den AVR übertragen wo er dann meist auch lauffähig ist :-)

Assembler - Maschinecode

Assembler ist eine Symbolsprache für Maschinensprache, da
maschinenspracheprogramme nur aus 0 und 1 besteht und für den menschen
so schwer lesbar wären. Hier benutzt man greifbare namen für eine
bitfolge die den maschinenbefehl darstellt.
Gast
Also im Allgemeine sagt man es folgendermassen:

* Preprocessor (der ersezt eventuelle Variablendefinitionen, included
files und so, halt alles was Compilerspezifisch möglich ist)
* Umsetzung in Assemblercode
* Übersetzen des Assembelrcodes in Objectcode (also 0 und 1)
* generieung des Ausführbaren Codes (also eventuelle Header o.ä.)

In den  Controlelr kommt dann das "Programm" in Anführungszeichen
deswegen weil man im Prinzip jeden beliebigen Bytecode in den Prozessor
schreiben kann das wird nicht überprüft oder so.

Der µC interpretiert dann den Code und führt die entsprechenden Befehle
aus.

Ist jezt nur einfach beschrieben aber im Prinzip passiert genau das

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.