Seite 1 von 1

CPU Simulator

Verfasst: Dienstag 10. November 2020, 20:38
von StevenB99
Hi, gibt es ein Programm wo man die ganzen Codes in einem CPU Simulationsprogramm simulieren kann?

Re: CPU Simulator

Verfasst: Dienstag 10. November 2020, 20:45
von __deets__
Diverse, zb Valgrind oder QEMU.

Re: CPU Simulator

Verfasst: Dienstag 10. November 2020, 21:02
von narpfel
Falls es graphisch sein soll: Visual 6502.

Re: CPU Simulator

Verfasst: Dienstag 10. November 2020, 23:11
von __blackjack__
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.

Re: CPU Simulator

Verfasst: Dienstag 10. November 2020, 23:44
von StevenB99
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?

Re: CPU Simulator

Verfasst: Mittwoch 11. November 2020, 00:03
von narpfel
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`.

Re: CPU Simulator

Verfasst: Mittwoch 11. November 2020, 00:23
von StevenB99
Danke Leute, hilft mir sehr weiter