Logik nach Assembler konvertiern

#611654
Lesenswert?

Hallo,
ich weiß nicht genau in welches Forum ich das jetzt reinschreiben soll 
also probiere ich es mal hier. Hat schon mal jemand versucht (oder gibt 
es schon fertige Lösungen?) eine Logikgatterschaltung in Assembler zu 
konvertieren? Die Gatterschaltung sollte am PC erstellt werden und dann 
als Assemblercode erstellt werden. Der Controller ist erstmal egal. Mir 
geht es nur um Lösungsansätze dieses Problems.
#611704
Lesenswert?

Geoffrey M. wrote:
> Hallo,
> ich weiß nicht genau in welches Forum ich das jetzt reinschreiben soll
> also probiere ich es mal hier. Hat schon mal jemand versucht (oder gibt
> es schon fertige Lösungen?) eine Logikgatterschaltung in Assembler zu
> konvertieren? Die Gatterschaltung sollte am PC erstellt werden und dann
> als Assemblercode erstellt werden. Der Controller ist erstmal egal. Mir
> geht es nur um Lösungsansätze dieses Problems.

Was kann in deinen Gattern alles vorkommen.
Wenn es nach der reinen Lehre geht, ist kann da ja nur
UND, ODER, NICHT, XOR vorkommen.

Und um Grunde ist so eine Gatterschaltung auch nur ein
Expression-Tree (wie man es im Compilerbau nennen würde).
Man fangt beim Ausgang an und betrachtet die Teilbäume die
zu den Eingängen des letzten Gatters führen. Für die wird
(mit derselben Funktion, also rekursiv) Code erzeugt, steht
der Code, dann betrachtet man die Verknüpfung und erzeugt
noch den Code für diese Verknüfung. Genauso wie die Code-
generierung in einem Compiler einen Expression-Tree abarbeitet.

Ein Problem könnte die Registerbelegung werden. Will man
sich das Leben einfach machen, dann implementiert man sich
noch eine Stackmaschine und ist somit auch das Problem der
Registerallokierung los.

Alles in allem: Bei den Compilerbauern solltest du da fündig
werden.

Klingt nach einem netten Projekt für einen faden Nachmittag.
#611887
Lesenswert?

Geoffrey M. wrote:
> Erstmal soll es nur ODER, UND, NICHT und XOR geben. Das ist schonmal ein
> guter Rat am Ausgang anzufangen. Ich habe leider noch nie einen Compiler
> gebastelt und das wird mein erster versuch sowas zu machen.

Wenn ichs mir recht übelege, ist das eigentlich einfacher
als einen Compiler zu schreiben: Es gibt keine Operatoren-
Vorrangregeln. Das ganze ähnelt eigentlich mehr der
Auswertung eines Expression-Trees als dem Aufbau, der
Tree (also die Schaltung) steht ja bereits.

d.h. die Technik mit: Am Ausgang anfangen und nach vorne
durcharbeiten würde genau das machen.

Wie hast du denn die 'Schaltung' erstellt? In welcher Form
liegt sie dir vor?
#611916
Lesenswert?

Geoffrey M. wrote:
> Die Logikschaltung gibt es nur auf dem Papier. Ich bin mir auch noch
> nicht sicher, welche Programmiersprache die beste für diesen Zweck ist.
> Hat da jemand einen Vorschlag?

Sowas artet immer in einen Glaubenskrieg aus.
Nimm die Programmiersprache, die du beherrscht.
Solange du das Gewünschte damit machen kannst, ist
diese die 'Beste'.
Gast #612678
Lesenswert?

Du solltest vorher festlegen, was du willst:

Simulation der Schaltung , wie du sie hingemalt hast (inklusive 
Gatterlaufzeit)
Dann läuft das ganze auf eine Statemachine hinaus, mit verschalteten Ein 
und Ausgängen. (Sowas musst du nicht programmieren, nimm VHDL)

oder

Simulation der Funktion
dann ist es eher ein Parser mit Vereinfachung, der auf eine zweistufige 
Funktion führt (DNF oder KNF),danach erzeugst du entweder Code oder eine 
Lookuptable.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren