kod asemblera -> język maszynowy

0

Dzień dobry,
Szukam informacji dotyczących przekładu kodu asemblera x86(16, 32, 64bitowego) do kodu maszynowego. Może być kod źródłowy jakiegoś opensourcowego kompilatora(nasm?). Byłoby super jakby to był najprostszy kompilator jaki może istnieć. Bez żadnych udogodnień typu: adresowanie po etykietach, dodatkowych funkcji typu call/ret itp.
Najprostszy przekład:
"jmp 0000h:0000h" =>if ... jmp near ....., else ... jmp far ... => if ... 0110011 else ... 000011100 (albo w hexie;P )

Chciałbym poznać sprzęt od strony programowej na najniższym poziomie, stworzyć własny kompilator(nie, żeby tworzyć wszystko na nowo, tylko stworzenie tego od 0 zapewni stuprocentowe zrozumienie co i jak działa, a może będę miał wymierne korzyści z tego i będę mógł go stworzyć z udogodnieniami jakie mi pasują).

Będę wdzięczny za pomoc.

0

Super dzięki! Wiele się z tego nauczę

Pierwsza nauka:
Tak się coś spodziewałem, że palnę jakąś głupotę zakładając ten temat;P call/ret to instrukcje procesora, nie udogodnienie kompilatora;D A przez cały czas byłem pewien, że to kompilator dzieli tę instrukcję na "y: call X" -> "push y; jmp x" itp.

2

Wszystko jest opisane w dokumentacji Intela i AMD.

Intel® 64 and IA-32 Architectures Software Developer Manuals: https://software.intel.com/en-us/articles/intel-sdm

AMD64 Architecture Programmer’s Manual: http://developer.amd.com/resources/developer-guides-manuals/

Moim zdaniem dokumentacja AMD jest pisana przystępniejszym językiem.

0

@Nazgul_: Jak znasz dobrze assemblera, to możesz zejść jeszcze niżej.
Umiejąc programować w assemblerze wiesz jakie mechanizmy są potrzebne do pracy, na binarnym systemie.

Możesz spróbować stworzyć własny procesor w algebrze boola, na którym stworzysz własny język, na którym stworzysz własny kompilator i język wysokiego poziomu, potem implementacja np. wirtual javy i stworzyłeś prawie świat od nowa.

Jeszcze zostaje opanować niższe elementy, po co kupywać tranzystory, rezystory i kondesatory jak można to zbudować?

Jak dojdzie do apokalipsy ziemi, to sam będziesz mógł odbudować świat.

0

Jeszcze lepiej, pal licho apokalipsę ziemi.. w przyszłości wszystkie sokoły milenium i inne x-wingi będą śmigać na tym co stworzę!

0

Nie żeby coś, ale jestem za buntownikami
tak czy inaczej, dzięki za rady;)

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