Das lernst du heute
- Bitoperationen wiederholen
- Packen und Text kombinieren
- Lücken erkennen
Die letzte Woche des Jahres schaut zurück. Drei Rückblicke fassen die Experten-Stufe zusammen, jeder mit einer Übung, die zwei Themen verbindet. Heute: Bits und Daten.
Die Werkzeuge
| Befehl | macht | Falle |
|---|---|---|
and | prüft und löscht Bits | arbeitet auf Ganzzahlen, Nachkommastellen fallen weg |
or | setzt Bits | – |
xor | schaltet Bits um | – |
not | dreht alle Bits | not 0 ist −1 |
sll/sla, srl, sra | schieben | nur sra behält das Vorzeichen |
rol, ror | rotieren | innerhalb von 54 Bit, nicht 64 |
ext, ins | Feld holen, Feld setzen | höchstens 53 Bit lang |
STR("…") | Text in eine Zahl | höchstens 6 ASCII-Zeichen |
HASH("…") | Name in eine Zahl | CRC32 als vorzeichenbehaftete 32-Bit-Zahl |
Darunter liegt immer dieselbe Tatsache: Ein Register ist eine Kommazahl mit 53 Bit Genauigkeit. Bitbefehle wandeln sie in eine Ganzzahl und zurück.
Packen und Text verbinden
Ein Statuswort wie das der Lüftung aus Tag 345 ist für Chips ideal und für Menschen unlesbar. „35“ sagt dir nichts. „SPUELN“ schon. Der Chip packt das Wort mit ext aus und wählt den passenden Text:
ext anf wort 4 2 # Bits 4-5: Anforderung
move text T_AUS
seq tmp anf 1
select text tmp T_NORMAL text
sbn ANZ HASH("Lueftung") Mode TEXTMODUS
sbn ANZ HASH("Lueftung") Setting text # zeigt NORMAL statt einer Zahl
Die Texte stehen als define mit STR("…"). Der Präprozessor macht daraus beim Laden eine Zahl, und eine Anzeige im Modus DisplayMode.String zeigt sie wieder als Buchstaben.
Lücken erkennen
Geh die Tabelle durch und frag dich bei jeder Zeile: Kann ich ein Beispiel im Kopf rechnen? and %1100 %1010, sra -32 3, ext %1011_0000 4 4 – wenn eines davon hakt, lies den Tag dazu noch einmal. Die Prüfung rechnet genau solche Beispiele.
Mehr als sechs Zeichen passen nicht in STR. „SPUELEN“ hat sieben und lädt nicht – deshalb heißt es hier „SPUELN“. Umlaute gehen gar nicht.
Schaubild
Übung
Aufgabe
Zeig das Statuswort „Lueft_Status“ (Format aus Tag 345: Bit 0 Zuluft, Bit 1 Abluft, Bit 2 Fehler, Bits 4–5 Anforderung) als Klartext. Die Anzeige „Lueftung“ steht im Textmodus und zeigt „AUS“, „NORMAL“ oder „SPUELN“ – bei gesetztem Fehlerbit, Anforderung 3 oder fehlendem Speicher „FEHLER“. Die Anzeige „Lueft_Pumpen“ zeigt, wie viele Pumpen laufen, ohne Speicher -1.
Hinweise
Hinweis 1
Fehlender Speicher: snan fehlt wort, dann select wort fehlt 4 wort – 4 ist das Fehlerbit.
Hinweis 2
Anforderung mit ext anf wort 4 2, die Pumpen mit zweimal ext … 1 und add.
Hinweis 3
Text als Kette von seq und select, das Fehlerbit zuletzt, damit es gewinnt.
Quiz
4 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Übung im Simulator bestanden
- Quiz mit mindestens 60 % bestanden
Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.
Fehler in dieser Lektion melden
Zum Melden bitte anmelden. Anmelden