Files
TI-Studium-Mitschriften/Notes.md
2025-07-02 13:08:03 +02:00

1.8 KiB

Wert wird an eine Stelle im RAM eingetragen.

A laden wir den Wert ein B laden wir die Ursprungsadresse +1 Jump to Write Address (PC) Wert aus A eintragen (OUTPUT) Jump back Ursprungsadresse + 1 (PC) unload a + b

Um zu schreiben brauchen wir:

  • WE (Flag?)
  • Adresse
  • Lesen oder Schreiben (Flag?)

Adresse scheint man über den PC zu steuern

Fehlersuche

Programm: 04 02 0f 12 Verhalten:

  • 02 wird in REG A geladen
  • in ADDR 3 wird 02 eingeladen
  • Verhalten entspricht den Vorstellungen (Code 4410)

Test 5C10

  • Programm: 04 02 0f 06
  • 02 wird in REG A geladen
  • in ADDR 3 wird 02 eingeladen
  • Springt anschließend zu ADDR 06

Es sollte zu erst der Sprung stattfinden und anschließend geschrieben werden. Sowie zurückgesprungen werden zur ursprünglichen Adresse

Idee: vorher den Jump erzwingen und anschließend schreiben Idee: Jump back flag, welches den Wert aus REG B in den PC nach der Operation lädt

5c50 WE_PC = 1 geändert Mit WE_PC = 1 wird zu erst gesprungen und anschließend geschrieben, leider an die falsche Adresse.

load B jump addr write MEM, A jump back

ROM ADDR 12

  1. MOV B,PTR
  2. JMP <addr>
  3. MEMW
  4. JMPB

REG A: Wert, den wir am Ziel eintragen wollen REG B: Ursprüngliche Adresse 12 ff 0c

Die letzte Adresse wird ebenfalls als CMD interpretiert, eine spätere Modifikation könnte daher von Interesse sein.

20 Ergebnis A 22 Speicher A

z: Init: Set B = 1 and A = EXIB if equal --> a:, else b:

b: Write Counter to VAR D (REG A, current Counter) REG B, SUM A = SUM Overload local Set REG B with new SUM Overload result in a: to new SUM Set REG A to VAR D SET B to 1 SUB Jump to z:

a: set A to result print halt

zwischenregister mit Instructions alle 2 Takte hinzugefügt, WMEM

  • springt
  • aber schreibt nicht mehr

Instructions

  • NOP (> PC + 1 > MBR)
  • MBR
  • (MBR (> PC))
  • PC + 1
  • PC + 1 (> MBR)