forked from khmarbaise/CPUEmu
-
Notifications
You must be signed in to change notification settings - Fork 0
/
overview.txt
72 lines (46 loc) · 1.33 KB
/
overview.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
CPUSimulator in Java:
Beziehung CPU <=> Speicher ?
------
CPU eine Klasse mit folgendens:
Register (Klasse 8, 16, 32 Bit ...zwei 8-Bit als 16 Bit ansprechbar?)
PC (Klasse 8, 16, 32 Bit)
------
Stack (?) Stack Pointer (Register speziell!)
RAM (Eigene Klasse, Simulation Zugriffszeiten? )
FLASH (Eigene Klasse, mit Simulation von Schreibzeiten/ etc.)
Sonstiges...
I/O Elemente ? (A/D, LED, 7-Segment, etc.)
Single-Step Ausführung, Breakpoints?, Laufzeit in Zyklen?
CRegister sind Teil der CPU
CPU <>--- CRegister
class CRegister {
private byte regValue;
public CRegister () {
this.regValue = 0; // ???
}
public byte getValue () {
return this.regValue;
}
public void setValue (byte value) {
this.regValue = value;
}
}
class CMemory {
private byte[] memory;
public CMemory (int memSize) {
memory = new CByteArray (memSize);
}
}
Ablauf Simulation eines Befehls in einer CPU:
Initialisierung: (Reset):
PC setzen auf Initialwert, Register auf start Werte setzen (eventuelle nicht initialisierung)
1. Befehl hohlen
2. zugehörige Daten holen (..Speicher zugriff!)
3. Ergebnisse in den Registern oder im Speicher ablegen
Behandlung IRQ??
4. PC erhöhen
5. gehe => 1 bis zur Ewigkeit...
--------------------
Für ein 8085 System
Speicher (? Adresslage änderbar)
I/O Per OUT/IN Befehl (1. Schritt Klasse US