Forum

Einloggen | Registrieren | RSS  

Wann gilt der Begriff Übersetzen? - Mnemonik (Elektronik)

verfasst von hws(R) E-Mail, 59425 Unna, 15.11.2011, 19:03 Uhr

» Auch der Assembler übersetzt, aber anders.....

Würde ich auch so sehen, aber es gibt eben keine exakte Definition von "übersetzen".

» Der Maschinenbefehl ist die Sprache des Prozessors, folglich dann auch des
» Controllers.

Richtig, und daher wird auch ein Assemblerbefehl in genau einen maschinensprachenbefehl umgesetzt.

» Der Assembler ist ein Interpreter.

Ganz sicher nicht.
Ein Interpreter nimmt sich genau einen Befehl der Interpretersprache (Basic war damals das Übliche) und führt diesen Befehl aus. Dann nimmt er sich den nächsten Befehl und führt den aus. Ein "for I=1 to 1000: next" übersetzt 1000 mal die Schleife und führt sie 1000 mal aus. Ein Compiler übersetzt diese Schleife genau einmal und beim anschließenden "run" wird sie dann 1000mal in Maschinensprache ausgeführt.
(oder auch gar nicht, weil jeder halbwegs vernünftige Compiler merkt, dass in der Schleife nix passiert und sie deshalb wegotimiert. Daher die Verwunderung, warum dasselbe Programm im Interpreter prima läuft und als compiliertes Programm nicht. Ebenso, wenn man aus der Schleife wegen bestimmter Bedingung ausgestiegen ist, und dann das I benutzen will, um die durchlaufenen Schleifen zu zählen. Im Interpreter funktioniert das (fast immer) als compiliertes Programm öfter nicht, da das I außerhalb der Schleife nicht unbedingt definiert sein muss)

» Bei einem 8bit Prozessor können es bis zu 256 Befehle sein.
Nein. Der Z80 ist ein 8Bit Prozessor, kann aber mehr als 256 Befehle. Bei Befehlen, die mit FDh / FEh anfangen, gehört auch das nachfolgende Byte zum Befehl. (IX und IY Manipulationen)

» Praktisch wird dieser Zahlenvorrat (Befehlsvorrat) nicht voll verwendet.
»
» Beispiel mit dem Microprocessor 6502:

Ähhm, DAS Beispiel zeigt, dass nicht für jeden Befehl alle Adressierungsarten benutzt werden ...

» Assembler - Programmier 1.Ebene, Interpreter
Nein, ein Interpreter interpretiert immer wieder seinen Eingangscode. Ein Assembler setzt seine (Assembler) Source einmal in eine Bitfolge (samt Berechnung von Sprüngen und symbolischen Adressen) um und setzt diese Folge einmal dem µC vor, der dann ohne weitere Benutzung des Assemblers den Maschinencode ausführt.

» Basic - 2.Ebene, Interpeter (in der Urform - jetzt ist es auch auf einen
» Comiler hochgewachsen)

Für Basic gibt es sowohl Interpreter (früher ausschließlich) als auch Compiler für Basic. (und ebenso für andere Sprachen)

» Früher musste ich vom C compilieren, dann interpredieren,
» "händich" mit eben diesen zwei Programmtypen.

Also für C kenn ich nur Compiler, aber keine Interpreter. Oder kennst du einen C-interpreter?

» --- > ERGO --- der Assmebler kann auch ein Mensch sein, der die Mnemonik
» und Prozessorbefehle kennt,
» eben diesen Zahlensalat im ROM /Befehlsspeicher/ lesen kann.

Sicher kann man auch direkt im Maschinencode programmieren (wenn man's kann). Beim Z80 konnte ich auch mal einen Speicherdump in Hex-Zahlen als Programmalauf nachvollziehen. Und wenn man sich das Programm so geschrieben hat und die Adressdifferenz von Sprungbefehlen selbst errechnet hatte .. ging alles.

» Mit den Programmiersprachen in in den höheren Ebenen ist das um ein
» Vielfaches schwieriger.

Was ist dort schwieriger? Man kann sich auch den vom C-Compiler generierten Assemblercode ansehen (und sogar verändern / optimieren - wenn man's kann)

Vorauszusagen, wie ein Compiler den Hochsprachentext in Assemblerbefehle umsetzt - kann vielleicht der Schreiber des Compilers, aber kein Normalsterblicher. Zumal man bei Compilern auch noch diverse Optimierungsstufen wählen kann.

hws



Gesamter Thread:

@geralds&Konsorten: Datenblätter für AVR µCs mit C++ Code - silent_max(R), 14.11.2011, 21:30 (Elektronik)
@geralds&Konsorten: Datenblätter für AVR µCs mit C++ Code - hws(R), 15.11.2011, 09:58
Wann gilt der Begriff Übersetzen? - schaerer(R), 15.11.2011, 12:05
Wann gilt der Begriff Übersetzen? - hws(R), 15.11.2011, 14:56
Wann gilt der Begriff Übersetzen? - schaerer(R), 15.11.2011, 19:11
Wann gilt der Begriff Übersetzen? - Mnemonik - geralds(R), 15.11.2011, 17:11
Wann gilt der Begriff Übersetzen? - Mnemonik - hws(R), 15.11.2011, 19:03
Wann gilt der Begriff Übersetzen? - Mnemonik - schaerer(R), 15.11.2011, 19:33
Assembler - Mnemonik - geralds(R), 15.11.2011, 21:24
@geralds&Konsorten: Datenblätter für AVR µCs mit C++ Code - silent_max(R), 15.11.2011, 18:19
@geralds&Konsorten: Datenblätter für AVR µCs mit C++ Code - geralds(R), 16.11.2011, 05:02
Entschuldigung - silent_max(R), 16.11.2011, 22:08
Tips - geralds(R), 16.11.2011, 23:02
Tips - hws(R), 17.11.2011, 11:19
Tips - geralds(R), 17.11.2011, 16:58
Tips 2 - geralds(R), 19.11.2011, 13:35