Jaka prosta architektura CPU do emulacji?

1

WITAM

Szybkie pytanie - mam ochotę napisać jakiś prosty emulator CPU, ale nie wiem za bardzo czego :D Chciałbym, żeby to było w miarę proste i można było się oddać radosnemu klepaniu spaghetti bez czytania specki godzinami, ale fajnie by było, żeby istniał kompilator C pod tę architekturę, bo wtedy będzie więcej frajdy z odpalania programów na tym. Jakieś pomysły?

EDIT:
Moim celem jest czysta zabawa, żadne praktyczne zastosowanie nie jest potrzebne. Nie musi być kompilatora konkretnie C, byle by to było coś lepszego niż assembler.

1

Na 8080 pewnie znajdziesz kompilator C a architektura byłą dużo prostsza niż kolejne serie.

mad_penguin napisał(a):

WITAM

Zaraz ktoś ci wyjaśni, dlaczego nie pisze się witam.

Szybkie pytanie - mam ochotę napisać jakiś prosty emulator CPU, ale nie wiem za bardzo czego :D Chciałbym, żeby to było w miarę proste i można było się oddać radosnemu klepaniu spaghetti bez czytania specki godzinami, ale fajnie by było, żeby istniał kompilator C pod tę architekturę, bo wtedy będzie więcej frajdy z odpalania programów na tym. Jakieś pomysły?

Na 8080 pewnie znajdziesz kompilator C a architektura byłą dużo prostsza niż 8086. Pytanie tylko, czy twoim celem jest zabawa czyj jakiś konkretny efekt.

1

RISC-V? Na zajęciach implementowaliśmy w Verilogu, podstawowa architektura bez rozszerzeń jest prosta.

3

Te dawne procesory, choć mało rozbudowane, miały miliony niuansów. Każdy rejestr z jakąś subtelnością itd... w emulatorze te różnice by tzreba ogarnąć

Nowe RISC są bardziej regularne. Może jakis AVR (Atmel) ?

Jak mowa o 8080, to jego kompatybilne rozwiniecie Zilog Z80, będzie łatwiej znaleźć, bo całkiem niedawno jeszcze żył na rynku pierwotnym.

0

RISC-V mam wrażenie, że wymaga za dużo czytania :D ale przemyślę jeszcze raz, a także sprawdzę pozostałe propozycje. Celem jest wyłącznie zabawa.

2

A z drugiej flanki, napisać prosty interpreter bytecodu Java ? Taka JVM dla ubogich

Rozbudowa / przekształcenie interpretera Lua ?

0

Faktycznie, JVM dla ubogich brzmi jak całkiem niezły pomysł, zwłaszcza, że już kiedyś nad tym myślałem, dzięki!

1

Ewentualnie masz jeszcze:

  • WebAsm
  • BEAM - tutaj implementacja procesów i wiadomości może być ciekawa

Alternatywnie możesz stworzyć własną prostą architekturę.

0

Własna architektura odpada, bo chciałbym, żeby można było pisać dla niej programy w czymś bardziej rozwiniętym niż prosty asembler, a nie mam tyle motywacji, żeby cały taki ekosystem stworzyć. WebAsm też obczaję. BEAM brzmi faktycznie jak ciekawe wyzwanie, ale może na przyszłość.

2
UglyMan napisał(a):

Na 8080 pewnie znajdziesz kompilator C a architektura byłą dużo prostsza niż kolejne serie.

mad_penguin napisał(a):

WITAM

Zaraz ktoś ci wyjaśni, dlaczego nie pisze się witam.

Dziś mi się nie chce

mad_penguin napisał(a):

mam ochotę napisać jakiś prosty emulator CPU

A ja proponuję trochę co innego. Kiedyś jeden człowiek napisał prostacki kompilator C bez optymalizacji 8cc. Kompilator jest bardzo prostacki, bo zdaje się że założenie było że zostanie napisany w 40 dni. Ale ten kompilator generuje działający podzbiór 8086. Bardzo mały podzbiór, co było podstawą do projektu ELVM i teraz mamy kompilator C do wielu języków ezoterycznych. Ale skoro to taki mały podzbiór, że łatwo go można skompilować do BrainFucka czy WhiteSpace to myślę, że łatwo by było też napisać interpreter takiego asemblera

1 użytkowników online, w tym zalogowanych: 0, gości: 1