update to local git repo
This commit is contained in:
89
Notes.md
Normal file
89
Notes.md
Normal file
@@ -0,0 +1,89 @@
|
||||
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)
|
||||
-
|
||||
Reference in New Issue
Block a user