Der Chip hat kein „Variablen anlegen“. Stattdessen gibt es Register: feste Speicherplätze, die je eine Zahl fassen.
Die Registerbank
| Register | Wofür |
|---|---|
r0 … r15 | frei für deine Werte |
sp (= r16) | Stapelzeiger, kommt in der Stack-Lektion |
ra (= r17) | Rücksprungadresse für Unterprogramme |
Beim Einsetzen des Chips stehen alle Register auf 0. Ein Register behält seinen Wert, bis du etwas Neues hineinschreibst.
Zahlen schreiben
Alle Werte im IC10 sind Kommazahlen. Wahr und falsch gibt es nicht extra – das sind einfach 1 und 0.
| Schreibweise | Beispiel | Wert |
|---|---|---|
| Dezimal | 42, -7, 293.15 | wie geschrieben |
| Hexadezimal | $1F | 31 |
| Binär | %1010 | 10 |
| Konstante | pi | 3.14159… |
Der Dezimaltrenner ist der Punkt: 293.15. Ein Komma liest der Chip als Tausendertrenner – aus 1,5 wird 15.
Exponentschreibweise wie 1e5 kennt der Chip nicht. Schreib 100000.
Ein Beispiel
move r0 101.325 # Normaldruck in kPa
move r1 $FF # 255
move r2 %1111 # 15
move r3 -12.5
Unterstriche in Hex- und Binärzahlen sind erlaubt und machen lange Zahlen lesbarer: %1010_0101.
Schaubild
Übung
Aufgabe
Fülle vier Register:
r0= 15r1= 31, aber hexadezimal geschriebenr2= 10, aber binär geschriebenr3= −2,5
Hinweise
Hinweis 1
Hexzahlen beginnen mit $, Binärzahlen mit %.
Hinweis 2
31 ist hexadezimal 1F, 10 ist binär 1010.
Hinweis 3
Bei −2,5 den Punkt nehmen: -2.5.