Das lernst du heute
- and und or mit 0/1-Werten
- xor und nor
- Bedingungen verknüpfen ohne Sprung
Ein Alarm soll losgehen, wenn der Druck zu niedrig oder die Temperatur zu hoch ist. Mit Sprüngen wären das zwei Zweige und vier Labels. Mit Logikbefehlen ist es eine Zeile.
and und or
| Befehl | Ergebnis bei 0/1-Werten |
|---|---|
and r? a b | 1, wenn beide 1 sind |
or r? a b | 1, wenn mindestens einer 1 ist |
xor r? a b | 1, wenn genau einer 1 ist |
nor r? a b | „keiner von beiden“ – aber Vorsicht, siehe unten |
l r0 d3 Pressure
l r1 d3 Temperature
slt r2 r0 50 # 1 = Druck unter 50 kPa
sgt r3 r1 313.15 # 1 = waermer als 40 C
or r4 r2 r3 # 1 = eins von beiden
s d4 On r4 # Warnlampe
xor: die Wechselschaltung
Ein langer Flur, an jedem Ende ein Hebel. Egal welchen du umlegst, das Licht soll umschalten. Genau das macht xor: Steht einer der Hebel anders als der andere, brennt das Licht. Legst du irgendeinen um, ändert sich das Ergebnis.
l r0 d0 Open
l r1 d1 Open
xor r2 r0 r1 # Wechselschaltung
s d2 On r2
nor ist bitweise
Alle vier Befehle arbeiten bitweise auf ganzen Zahlen. Bei and, or und xor merkst du davon nichts, solange nur 0 und 1 hineingehen. Bei nor schon: Es dreht alle Bits um. nor r0 0 0 ergibt deshalb nicht 1, sondern −1, und bei einer 1 im Spiel kommt −2 heraus.
Für ein sauberes „keiner von beiden“ nimmst du lieber zwei Befehle:
or r3 r0 r1
seqz r3 r3 # 1 nur, wenn beide 0 sind
Oder du behältst nor und schneidest das letzte Bit ab: and r3 r3 1 macht aus −1 eine 1 und aus −2 eine 0.
Nur 0 und 1 hineinstecken. and r0 2 1 ergibt 0, obwohl beide Werte „wahr“ aussehen: Binär ist 2 10 und 1 01, kein Bit stimmt überein. Werte, die nicht sicher 0 oder 1 sind, machst du vorher mit snez sauber.
Ohne Sprung entscheiden
Mit Set-Befehlen, Logik und select baust du ganze Entscheidungen ohne ein einziges Label. Das Programm läuft jeden Takt von oben nach unten durch und schreibt immer alle Geräte. Es gibt keinen Zweig, in dem man ein s vergessen könnte.
Schaubild
Übung
Aufgabe
Ein Flur mit sechs Geräten, ohne bedingte Sprünge (nur j start):
d0,d1: Hebel an den beiden Flurenden. Die Flurlamped2schaltet bei jedem Umlegen um (Wechselschaltung).d3: Gas-Sensor. Die Warnlamped4brennt bei Druck unter 50 kPa oder Temperatur über 40 °C (313,15 K).d5: Bereitschaftslampe. Sie brennt, wenn keiner der beiden Hebel umgelegt ist – sauber mit 0 oder 1.
Hinweise
Hinweis 1
Flurlampe: xor r2 r0 r1.
Hinweis 2
Bereitschaft: erst or, dann seqz – oder nor und danach and … 1.
Hinweis 3
Warnlampe: zwei Vergleiche (slt, sgt) und ein or.
Quiz
5 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