CPU Simulator

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
StevenB99
User
Beiträge: 33
Registriert: Donnerstag 4. Juni 2020, 23:12

Hi, gibt es ein Programm wo man die ganzen Codes in einem CPU Simulationsprogramm simulieren kann?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Diverse, zb Valgrind oder QEMU.
narpfel
User
Beiträge: 691
Registriert: Freitag 20. Oktober 2017, 16:10

Falls es graphisch sein soll: Visual 6502.
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Falls man noch ein bisschen ”Hardware” um den 6502 haben möchte ist VICE auch recht nett: https://vice-emu.sourceforge.io/ 🤓

Oder DOSBox falls es ein Prozessor aus der frühen x86-Familie sein soll.

Oder… es gibt da echt viel. Frage ist natürlich wo hier der Python-Bezug ist bei der Frage.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
StevenB99
User
Beiträge: 33
Registriert: Donnerstag 4. Juni 2020, 23:12

0 LOAD_CONST 0 (<code object dreher at 0x55f3e164d760, file "example.py", line 1>)
------> 2 LOAD_CONST ----->1 ('dreher') #
4 MAKE_FUNCTION 0
6 STORE_NAME 0 (dreher)
8 LOAD_CONST 2 (None)
10 RETURN_VALUE

Disassembly of <code object dreher at 0x55f3e164d760, file "example.py", line 1>:
0 LOAD_GLOBAL 0 (len)
2 LOAD_FAST 0 (kette)
4 CALL_FUNCTION 1
------------> 6 STORE_FAST -------> 1 (laenge) #Was bedeutet die 6 und die 1 ????


Was bedeutet die Zahlen hinter den Befehlen und dannach?
narpfel
User
Beiträge: 691
Registriert: Freitag 20. Oktober 2017, 16:10

Vor dem Opcode steht der Offset in Bytes zum Beginn des Code-Objektes, nach dem Opcode steht der Parameter für den Opcode. Das hat also je nach Opcode eine andere Bedeutung, bei `STORE_FAST` ist es der Slot, in der der oberste Wert vom Stack gespeichert werden soll.

Das ist alles ziemlich gut in der Dokumentation zum `dis`-Modul beschrieben. Hier zum Beispiel für `STORE_FAST`.
StevenB99
User
Beiträge: 33
Registriert: Donnerstag 4. Juni 2020, 23:12

Danke Leute, hilft mir sehr weiter
Antworten