Programmiersprachen
LVA 185.208, VL 2.0, 2009 S

1. Übungsaufgabe

AKTUELL:

Im unten vorgegebenen Befehlssatz des Geräts gibt es keinen Befehl, um ein indirekt adressiertes Register auszulesen. Vermutlich würde Ihnen ein solcher Befehl die Lösung der Aufgabe wesentlich erleichtern. Sie können die Aufgabe so abändern, dass Sie einen solchen Befehl einführen und dafür einen beliebigen anderen Befehl, den Sie nicht brauchen, weglassen.

Aufgabe:

Entwickeln Sie in einer Programmiersprache Ihrer Wahl eine Simulation eines programmierbaren Geräts (bzw. Taschenrechners) entsprechend folgenden Spezifikationen. Nur die wichtigsten Grundfunktionen sind in der von Ihnen gewählten Programmiersprache zu implementieren. Alles andere ist direkt in der Sprache des Werkzeugs zu realisieren.

Architektur des Geräts:

Das Gerät besteht aus folgenden Teilen:

Befehle (in Registern) bestehen aus 32 Bit und haben die Struktur oBA, wobei o aus 4 Bit besteht und die Operation bestimmt und B und A aus je 14 Bit bestehen und Registeradressen bzw. Konstanten beschreiben. Folgende Operationen sollen unterstützt werden:

Alle arithmetischen Operationen sind ganzzahlig und interpretieren Registerinhalte als vorzeichenbehaftete Zahlen. A und B sind ebenfalls vorzeichenbehaftete Konstanten oder Registeradressen.

Software auf dem Gerät:

Es wird Software für folgende Anwendungen benötigt: Diese Software soll direkt auf dem simulierten Gerät ausgeführt werden. Daher ist sie ausschließlich über die oben beschriebenen Operationen zu implementieren.

Hinweise:

Das Gerät ähnelt in der Architektur üblichen Rechnern. Es lässt sich wie andere Computer programmieren, allerdings wegen fehlender Werkzeuge nur auf einer sehr niedrigen Ebene. Genau das ist die Herausforderung in dieser Aufgabenstellung.

Legen Sie den Schwerpunkt auf die Software, die auf dem Gerät benötigt wird (und nicht auf den relativ einfach zu implementierenden Simulator). Gehen Sie am besten so vor:

Für den letzten Schritt können Sie Hilfsmittel verwenden. Beispielsweise können die meisten C-Compiler Assembler-Code produzieren, der sich durch die Ähnlichkeit mit den Befehlen des Geräts vielleicht leichter übersetzen lässt als der Quellcode.
Complang
Puntigam
   Kontakt
   Research
   Lehre
      OOP
      Typsysteme
      EP2
      FOOP
      Prog.spr.
      frühere Lehre
         LVAs 2017 W
         LVAs 2017 S
         LVAs 2016 W
         LVAs 2016 S
         LVAs 2015 W
         LVAs 2015 S
         LVAs 2014 W
         LVAs 2014 S
         LVAs 2013 W
         LVAs 2013 S
         LVAs 2012 W
         LVAs 2012 S
         LVAs 2011 W
         LVAs 2011 S
         LVAs 2010 W
         LVAs 2010 S
         LVAs 2009 W
         LVAs 2009 S
            Prog.spr.
               1. Aufgabe
               2. Aufgabe
               3. Aufgabe
            FOOP
         LVAs 2008 W
         LVAs 2008 S
         LVAs 2007 W
         LVAs 2007 S
         LVAs 2006 W
         LVAs 2006 S
         LVAs 2005 W
         LVAs 2005 S
         LVAs 2004 W
         LVAs 2004 S
         LVAs 2003 W
   Links
Sitemap
Kontakt
Schnellzugriff:
nächste Aufgabe
Fakultät für Informatik
Technische Universität Wien
Anfang | HTML 4.01 | Datenschutzerklärung | letzte Änderung: 2009-03-25 (Puntigam)