Czy w delphi jest możliwość napisania kompilatora ASM?? A jeśli tak to jak??
na forum było już dużo wątków o pisaniu kompilatorów, poszukaj. a jeżeli chodzi ci o kompilator asma w Delphi to ja twierdzę, zę się nie da.
//nie doczytałem, że chodzi o Delphi na pewno [glowa]
..jezeli nie jestes doswiadczonym programista to nie napiszesz. To jest wyzsza szkola jazdy !
Kompilator da sie napisac, sam kiedys napisalem ENGINE i dzialal. Tylko mowie ze to jest trudne....
a jeżeli chodzi ci o kompilator asma w Delphi to ja twierdzę, zę się nie da.
Dlaczego? Ja myślę, że się da, i że jest to dużo prostsze od napisania kompilatora C, czy Delphi (brak optymalizacji). Trzeba tylko (no dobra, wiem, że to nie jest takie proste) znać budowę pliku wykonywalnego, znać dobrze assembler i umieć zamienić jego kod na bajty.
tzn. jezeli chcesz napisac kompilator dobrze by bylo znac asemblera. Przy okazji nauki asemblera na pewno dojdziesz do struktury plikow i kodu maszynowego ;)
..jezeli nie jestes doswiadczonym programista to nie napiszesz. To jest wyzsza szkola jazdy !
Zdaje sobie z tego sprawe. I mysle że bym dał rade, tylko nie wiem od czego zacząć.
Kompilator da sie napisac, sam kiedys napisalem ENGINE i dzialal. Tylko mowie ze to jest trudne....
Xenis mógbys mi pomóc chociaż zacząć??
jak chcesz pomocy to pisz na priv ;)
Ej no, przecież ASM właściwie się nie kompiluje. Po prostu zamieniasz odpowiednie instrukcje na odpowiednie bajty, wszelkie wartości odpowiednio konwertujesz i już... Przecież to nie jest nawet TRUDNE zadanie, nie mówiąc o NIEWYKONYWALNYM. Myślę, że jak ktoś zna ASM'a i ma listę kodów odpowiadających poszczególnym instrukcjom, to jest to nawet PROSTE.
..jezli nie napisales nigdy kompilatora to sie nie odzywaj. poza tym zle mowisz !
//troche grzeczniej prosze Jestes tu kilka dni i pewnie bys nie chcial na kilku dniach skonczyc wiec pokaz ze masz troche kultury w sobie - Pedros
Sprawa jest prosta. Tworzysz plik com i w nim każdy bajt to jest odpowiednia instrukcja w ASM'ie i już. A... zapomniałem, oczywiście trzeba niektóre wartości ustalić, naprzykład OFFSET'y różnych zmiennych i takie tam. To JEST proste. To nawet nie jest kompilator, tylko tłumacz. Oczywiście, że napisanie kompilatora jest sprawą trudną, ale ASM'a z zasady nie trzeba kompilować.
..jezli nie napisales nigdy kompilatora to sie nie odzywaj. poza tym zle mowisz !
A Ty napisałeś? Patrząc na poziomi merytoryczny Twoich odpowiedzi na inne posty, nie sądzę, żebyś był zaawansowanym programistą (bez obrazy).
Poza tym, dla kogoś kto ma zamiar po raz pierwszy coś takiego napisać (niedługo i mnie :) mam przynajmniej taką nadzieję :) ) to wcale nie musi być proste. Za drugim, dziesiątym, setnym razem już popadasz w rutynę i może to JEST proste, ale zawsze trzeba dodać DLA KOGO.
To i ja swoje 5gr dorzuce...
otóż jezeli chcecie kompilator asemblera x86 to to nie jest tak proste jak zamiana mnemonika na kod. Przy procesorach RISC chyba latwiej by bylo.
Intelowski zapis kodow jest strasznie zakrecony. Polecenia dla procesora sa... dziwnie kodowane, ale oczywiscie to wszystko ma swoje zrodla (m. in. zmniejszenie ilosci danych koniecznych do wczytania).
Aby zakodowac jakas instrukcje asm x86 nalezy rozpoznac mnemonik, sprawdzic jakiego typu sa jego parametry, na podstawie tego zakodowac odpowiednie bity kodu operacji, nastepnie odpowiednio zakodowac parametry. Nie mowie juz o tym, ze jezeli bysmy chcieli takiej prostej skladni jak ma FASM, to musielibysmy rowniez odpowiednio dopierac kody operacji zalezne od tego, ktore najbardziej odpowiadaja w danej chwili (jedno jmp w asemblerze to wiecej niz jeden mozliwy do wyboru kod...).
Jednym slowem, to nie jest takie hop siup.
...wreszcie ktos mądrze napisal :)
I trzeba jeszcze dodac ze przydala by sie znajmosc struktury plików PE.
Popieram :) A skoro już przy asmie jesteśmy, to może skrobniesz Dryo jakiś kursik albo ciąg dalszy tych artów? Ciekawe były :) I dodaj instrukcję obsługi :P
Popieram :) A skoro już przy asmie jesteśmy, to może skrobniesz Dryo jakiś kursik albo ciąg dalszy tych artów? Ciekawe były :) I dodaj instrukcję obsługi :P
W najblizszym czasie na pewno nie. Mam inne priorytety, a szczerze mowiac zaczynam watpic w sens pisania czegokolwiek takiego... Malo kto korzysta z tego. W kolko pojawiaja sie pytania o te same podstawy, ktore spokojnie mozna znalezc w sieci lub na forum. Rozwazalem nawet usuniecie tego co juz jest, ale... wciaz dostaje maile lub informacje na gg od zainteresowanych rozwijaniem tego. Wiec moze w przyszlosci... Wiem co chcialbym dodac do tego co jest (bo na razie to suche informacje), ale nie mam zbyt wiele czasu...
ale nie mam zbyt wiele czasu...
I skąd ja to znam??
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.