• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Własny assembler lub kompilator

Object Storage Arubacloud
0 głosów
634 wizyt
pytanie zadane 23 marca 2020 w C i C++ przez Tomek Kozioł Obywatel (1,740 p.)
Witam postanowiłem napisać assembler lub kompilator oparty na moim własnym zestawie instrukcji, jednak trudno znaleźć odpowiednie informacje(każde źródło pokazuje inaczej). Mógłby ktoś mi podesłać jakieś dobre i sprawdzone źródła oraz dać przykład assemblera który działa na niestandardowym zestawie instrukcji?
komentarz 23 marca 2020 przez DragonCoder Nałogowiec (36,500 p.)
Pisanie wlasnego jezyka programowania + kompilatora do niego, to nie jest raczej proste zadanie i wymaga znajomosci programistycznych, ale tez duzej wiedzy teoretycznej, czyli jak dziala kompilator, co sie dzieje, gdy odpalisz ten kod itd. Nie wiem, czy jest do tego jakies zrodlo informacji, tzn ksiazka, wiec jak juz to zacznij od interpretera moze?
komentarz 23 marca 2020 przez Tomek Kozioł Obywatel (1,740 p.)
Ciekawe jak mam napisać interpreter pod własny procesor w FPGA ? Pisanie kodu dla mojego procesora w Hex Editor jest uciążliwe. A potrzebną wiedzę teoretyczną w pewnym stopniu mam.
komentarz 23 marca 2020 przez DragonCoder Nałogowiec (36,500 p.)
Nie mowiles, ze to idzie pod wlasny procek. Nie rozumiem czemu e HexEditor.

btw. Jak ostatnio pisalem odnosnie swojego projektu, to jako informacje otrzymalem, zeby do fpga uzyc:

https://www.google.com/search?q=verilog

lub

https://www.google.com/search?q=vhdl

wiecej raczej w tym temacie niezbyt pomoge.
komentarz 23 marca 2020 przez Tomek Kozioł Obywatel (1,740 p.)
Kod procesora(konfiguracja FPGA) jest napisany w VHDL. Tylko, że jego ROM muszę pisać w Hex Editor, ponieważ nie mam do niego assemblera ani kompilatora(muszę sam zrobić). I dlatego potrzebuję sprawdzonych źródeł na ten temat.
komentarz 23 marca 2020 przez tkz Nałogowiec (42,000 p.)

Może byś zajrzał do "Zrozumieć programowanie" od Gynvael Coldwind, poświęcił rozdział niskopoziomowym rozwiązaniom. 

komentarz 23 marca 2020 przez Tomek Kozioł Obywatel (1,740 p.)

Jestem u niego stałym widzem cheeky Tylko problemem było u mnie znaleźć sprawdzone źródło na ten temat( pełna implementacja assemblera i kompilatora).

3 odpowiedzi

0 głosów
odpowiedź 23 marca 2020 przez mokrowski Mędrzec (155,460 p.)
wybrane 23 marca 2020 przez Tomek Kozioł
 
Najlepsza
https://pl.wikipedia.org/wiki/Brainfuck

Implementacji jest bardzo wiele. do każdej instrukcji możesz dobrać token (a jest ich 8) + obsługa prostego RS232 TTL i masz co chciałeś. Kompilator lub interpreter jest dla tego języka trywialny.

Jak chcesz coś bardziej ambitnego i mniej spotykanego, to polecam DCPU-16. Tu masz specyfikację. Reszta do znalezienia (włącznie z implementacjami emulatorów i kompilatorów)

https://gist.github.com/metaphox/3888117
+1 głos
odpowiedź 23 marca 2020 przez tangarr Mędrzec (154,860 p.)

Trudność zadania sprowadza się do napisania parsera.
Ja bym to zrobił następująco:
 

while (mogę_czytć_z_pliku) {
    linia = wczytaj_linie_z_pliku();
    if (linia zaczyna się znakiem '#')
        continue;
    tokeny = podziel linie na słowa
    if (tokeny[0] == znana_instrukcja_1) {
        if (tokeny.length != ilosc_parametrów_instrukcji_1) {
             ZGŁOŚ_BŁĄD
        }
        // obsługa instrukcji
    }
    ...
    else if (tokeny[0] == znana_instrukcja_N) {
        ...
    }
    else {
         ZGŁOŚ_BŁĄD
    }
}

 

komentarz 23 marca 2020 przez Tomek Kozioł Obywatel (1,740 p.)
Dosyć ciekawy pomysł, spróbuje trochę nad tym pokombinować.
0 głosów
odpowiedź 23 marca 2020 przez 1234 Dyskutant (9,140 p.)

Gynvael Coldwind pisał na swoim streamie własny kompilator assemblera, co prawda kilka streamów po kilka godzin ale może pomoże:

https://www.youtube.com/watch?v=qlEmRWvKAOU

komentarz 23 marca 2020 przez Tomek Kozioł Obywatel (1,740 p.)
Zaznajomiłem się z tym prostym assemblerem, ale on jakoś nie przypada mi, ale dzięki za odpowiedź.

Podobne pytania

0 głosów
1 odpowiedź 617 wizyt
pytanie zadane 20 czerwca 2019 w Inne języki przez Michal5552 Początkujący (400 p.)
0 głosów
0 odpowiedzi 102 wizyt
pytanie zadane 9 czerwca 2016 w Nasze poradniki przez Marcel Radek Użytkownik (840 p.)
+2 głosów
1 odpowiedź 504 wizyt
pytanie zadane 16 stycznia 2016 w Nasze projekty przez Marcel Radek Użytkownik (840 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...