stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 123

Tag 123 von 365 · Fortgeschritten · Monat 5: Speicher und Struktur

Speicher anderer Geräte: get, put, clr, clrd

get und put lesen und schreiben auch den Stack anderer Geräte, clr und clrd löschen ihn. Welche Geräte überhaupt Speicher haben, steht in den Spieldaten.

Lektion 15 Min. Woche 18

Das lernst du heute

  • Stack eines anderen Chips lesen und schreiben
  • Speicher löschen
  • clrd mit ID

Ein Chip hat 512 Plätze im Stack. Braucht er mehr, oder sollen zwei Chips eine große Tabelle teilen, liest und schreibt er den Stack eines anderen Chips.

get und put mit einem anderen Gerät

Statt db setzt du das andere Gerät ein: einen Pin, ein Register mit ReferenceId oder ein define mit der Nummer.

get wert d0 5          # Adresse 5 im Chip an d0 lesen
put d0 5 wert          # Adresse 5 im Chip an d0 schreiben
get wert id 5          # dasselbe ueber eine ReferenceId

Bei einem IC-Gehäuse landest du im Stack des Chips, der darin steckt. Die Reihenfolge bei put ist immer Gerät, Adresse, Wert.

Welche Geräte Speicher haben

Laut Spieldaten haben nur bestimmte Geräte einen Speicher:

GerätPlätzelesenschreiben
IC-Gehäuse (Chip darin)512jaja
Logic Sorter32jaja
Autolathe und andere Fertiger64jaja
Satellitenschüssel (mittel)32jaja
Anzugschrank24janein
Anwesenheitssensor18janein

Die Logic Memory hat keinen Stack, nur ihr Setting. Schreibst du in einen Speicher, der nur lesbar ist, meldet der Chip MemoryNotWriteable.

Speicher löschen: clr und clrd

clr d0             # ganzen Stack des Geraets an d0 auf 0
clrd id            # dasselbe ueber eine ReferenceId

clr nimmt einen Pin, clrd eine ReferenceId. Beide setzen alle Plätze auf 0. sp des anderen Chips ändern sie nicht.

Achtung

Ein fremder Speicher gehört dem fremden Chip. Schreibst du in Adressen, die er selbst benutzt, zerstörst du seine Daten. Sprecht ab, welche Adressen wem gehören, wie bei den Briefkästen aus Tag 115. Und clr löscht ohne Rückfrage alles.

Tipp

Prüf das Gerät vorher mit bdns. Fehlt es, hält get mit einem Fehler an.

Schaubild

Der Stack mit Stapelzeiger Platz 0 10 Platz 1 20 Platz 2 30 Platz 3 Platz 4 sp = 3 nächster freier Platz push 40 pop r0 r0 = 30 zuletzt rein, zuerst raus
Statt db steht ein Pin oder eine ReferenceId: Dann greifen get und put auf den Speicher des anderen Geräts zu.

Übung

Aufgabe

An d0 steckt ein zweites IC-Gehäuse. Dein Chip führt in dessen Stack einen Zähler.

  • Jeden Takt: Adresse 0 des Nachbarchips lesen, um 1 erhöhen, zurückschreiben. Der Stand steht in r0.
  • Ein Druck auf den Knopf „Loeschen“ (Flanke) löscht den ganzen Speicher des Nachbarchips mit clrd über seine ReferenceId und setzt r0 auf 0.
  • Fehlt der Nachbarchip, passiert nichts – ohne Fehler.

Hinweise

Hinweis 1

Zuerst bdns speicher start – ohne Nachbarchip zurück zum yield.

Hinweis 2

Zähler: get, add, put speicher ADRESSE stand.

Hinweis 3

Löschen: Flanke prüfen, dann l id speicher ReferenceId und clrd id.

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

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall