1/5 Einführung Calculator

Theorie

Der CT-Board-Simulator bietet als Hilfswerkzeug einen Rechner (Calculator) an. Dieser unterscheidet sich von einem herkömmlichen Rechenprogramm dadurch, dass die Berechnungen wie in der simulierten Arithmetic Logic Unit (ALU) des CT-Board-Simulators durchgeführt werden. Das ist wichtig, weil Programmierer*innen beim Schreiben von Assemblercode oft Berechnungen durchführen und dabei die hardwarespezifischen Limitierungen beachten müssen.

Schematische Darstellung der ALU im CT-Board-Simulator. Die blauen und roten Pfeile zeigen die elektrotechnische Eingabe der beiden Operanden in die ALU an, die für Berechnungen verwendet werden.

Diese hardwarespezifischen Limitierungen haben zur Folge, dass auch der Calculator einige Einschränkungen aufweist. Zum Beispiel kann die ALU im CT-Board Simulator nur mit ganzen Zahlen rechnen. Brüche wie 1/8 = 0,125 können von der ALU nicht direkt berechnet werden, dementsprechend steht die Division als Rechenoperation nicht zur Verfügung.

Ausserdem ist der darstellbare Zahlenbereich durch die ALU-Size begrenzt. Der Calculator stellt folgende Modi zur Verfügung, wobei die ALU des CT-Board-Simulators immer in 32-Bit operiert.

ALU-Size Mode Bereich (unsigned) Bereich (signed)
8-Bit 0 bis 255 -128 bis 127
16-Bit 0 Bis 65'535 -32'768 bis 32'767
32-Bit 0 bis 4'294'967'295 -2'147'483'648 bis 2'147'483'647

Wenn der geschriebene Code eine solche Limitierung überschreiten könnte, müssen die Programmierer*innen nach jeder Rechenoperation überprüfen, ob diese erfolgreich war. Hierfür können die Flags der letzten Rechenoperation verwendet werden. Im Fall des CT-Board-Simulators werden diese auch nach jeder Rechenoperation aktualisiert und angezeigt. Folgende Flags sind relevant.

Flag Bedeutung Relevanz Interpretation Relevanz Rechenoperation
Zero Das Ergebnis der letzten Rechenoperation ist null. Signed, Unsigned Addition, Subtraktion und Multiplikation
Negative Das Ergebnis der letzten Rechenoperation ist negativ. Signed Addition, Subtraktion und Multiplikation
Carry Die letzte Rechenoperation konnte aufgrund der Beschränkung nicht korrekt berechnet werden und erfordert zusätzliche Schritte. Unsigned Addition, Subtraktion
Overflow Die letzte Rechenoperation konnte aufgrund der Beschränkung nicht korrekt berechnet werden und erfordert zusätzliche Schritte. Signed Addition, Subtraktion

Nächster Schritt: Wie bediene ich den Calculator?

20%