Alle Rechenbefehle folgen demselben Muster: erst das Ziel, dann die Werte.
add r1 r0 273.15 # r1 = r0 + 273.15
| Befehl | Bedeutung |
|---|---|
move r? a | r = a |
add r? a b | r = a + b |
sub r? a b | r = a − b |
mul r? a b | r = a · b |
div r? a b | r = a / b |
mod r? a b | Rest von a / b (nie negativ bei positivem b) |
Für a und b darf ein Register oder eine feste Zahl stehen. Das Ziel muss immer ein Register sein. Du darfst auch in dasselbe Register schreiben, aus dem du liest: add r0 r0 1 zählt r0 um eins hoch.
Kelvin, nicht Celsius
Stationeers misst Temperaturen in Kelvin. 0 °C sind 273,15 K. Jeder Gas-Sensor liefert Kelvin, jede Heizung erwartet Kelvin.
# r0 kommt in Kelvin vom Sensor
sub r1 r0 273.15 # r1 = Grad Celsius fuer die Anzeige
Im IC10-Coder kannst du 21C tippen und die Leertaste drücken – der Editor macht daraus 294.15.
Keine Klammern
Es gibt keine Formeln wie (a + b) * c. Längere Rechnungen zerlegst du in mehrere Zeilen und nutzt ein Register als Zwischenspeicher:
add r2 r0 r1 # Zwischenergebnis
mul r2 r2 0.5 # Mittelwert von r0 und r1
Durch 0 teilen stürzt nicht ab, liefert aber „unendlich“. Prüf so etwas lieber vorher.
Schaubild
Übung
Aufgabe
In r0 steht eine Temperatur in Grad Celsius (die setzt der Test vorher). Rechne sie um:
r1= dieselbe Temperatur in Kelvinr2= dieselbe Temperatur in Fahrenheit (°C · 1,8 + 32)
Hinweise
Hinweis 1
Kelvin: add r1 r0 273.15.
Hinweis 2
Fahrenheit braucht zwei Zeilen: erst mit 1.8 multiplizieren, dann 32 addieren.
Hinweis 3
Überschreib r0 nicht – den Wert brauchst du für beide Rechnungen.