eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming(announce) organic asmRe: [OT] (announce) organic asm
  • Data: 2017-09-09 00:17:32
    Temat: Re: [OT] (announce) organic asm
    Od: fir <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu piątek, 8 września 2017 01:27:29 UTC+2 użytkownik fir napisał:
    > W dniu piątek, 8 września 2017 01:12:35 UTC+2 użytkownik fir napisał:
    > > jutro jeszcze (zapewne) opisze jeszcze smutne kwestie multipasow i fixupow
    (ciekawe tylko jesli ktos chce wiedziec jak dziala asm, mi samemu przyda si o tym
    wspomniec by uzyskac wieksza jasnosc jak to dziala a jest to troche zagmatwane
    > >
    > > moze w sumie pare slow juz teraz
    > >
    > > 1) na poczatku skanujac zrodlo buduje sekcje importow - oprocz samego binarnego
    bloku tejh sekcji mam tez funkcja podajaca dla danego importu (podawanego po nazwie)
    wartosc relatywnego wskaznika
    > > wskazujacego miejsce gdzie lezy pointer do tej funkcji (ktory zostanie wypelniony

    > > przez loader windy)
    > > Oprocz tego istatna dana jest tez koncowy rozmiar tej sekcji
    > >
    > > 2) skanujac zrodlo buduje sekcje data oprocz niej mam funkcje ktora dla danego
    labelu z sekcji data podaje re;atywny wskaznik do adekwatnej komorki w tej sekcji -
    oprocz tego wazna dana jest finalny rozmiar tej sekcji
    > >
    > > 3) skanuje zrodlo i asembl;uje mnemoniki,
    > > oprocz samych mnemonikow w zrodla mozna tam napotkac 4 rzeczy
    > > l) label okreslajacy miejsce w kodzie (definicja np poczatku procedury)
    > > c) odwolanie do labelu w kodzie (w przod lub w tyl) (glownie przez skoki)
    > > d) odwolanie do labelu w danych (glownie przez mov)
    > > i) odwolanie do importu (glownie przez call)
    > >
    > > o tym co trzeba z tym zrobic moze jutro
    > >
    > > (wlasciwie zadnego z tych labeli nie mozna przetlumaczyc na inta w pierwszym
    podejsciu:
    > > l) te labele trzeba zrzucic do tablicy razem z ich wartosciami (ktore
    przynajmniej mozna od razu wyznaczyc)
    > > c) odwolanie trzeba zrzucic do tablicy
    > > razem z miejscem w kodzie ktore trzeba wypwlnic (ktore to miejsce tez na
    szczescie mozna od razu ustalic)
    > > d) odwolanie do danych tez trzeba zrzucic do tablicy razem z miejscem w kodzie
    ktore trzeba wypelnic
    > > i) odwolania do importow trzeba zrzucic do tablicy (azem zmiejscami ktore trzeba
    wypelnic)
    > >
    > > po zasemblowaniu tego otrzymuje sie rozmar sekcji kodu, ktory trzeba wyrownac w
    gore co pozwala uzyskac polozenie sekcji importow, dodanie rozmiary wyrownanego w
    gore rozmiaru sekcji importow daje adres poczatku sekcji data
    > >
    > > teraz z tego co sie orientuje trzeba przeiterowac wszystkie 4 tabele i zarzucic
    te fixupy, w wyniku czego powinnq powstac poprawnie wypelniona sekcja kodu, ktora
    razem z sekcja importow i danych zapisuje sie na dyck
    > > i zrobione
    > >
    > > niby nie takie trudne ale obraz troche
    > > komplikuja lekkie subtelnosci, glowni eto ze aligmenty sekcji w ramie sa ine niz
    w pliku a same adresy czasem podaje sie w postaci relatywnych offsetow (zdaje sie ze
    wiekszosc w sekcji importow juz nie pamietam a te w sekcji kodu raczej w postaci
    pelnych absolutnych wskaznikow) idzie sie pogubic
    > >
    > > do tego trzeba jeszcze poustawiac odpowiednie pola w naglowkach pe co tez jest co
    nieco nieczytelee i dziwne
    > >
    > > wiekszosc tego mam zrobione ale polozenie sekcji data i imports wklepalem na
    sztywno (dzieki czemu nie musialem robic tabel fixupow dla danych i importow) i teraz
    wlasnie musze to pewnie w weekend poprawic bytan asm wlasni enie mial ograniczen
    > >
    > > (wogole szczerze mowiac nawet nieco dziwne mozna powiedziec jest to ze jak
    kodowalem tego asma to wiekszosc problemow jakie tu wspomnialem udawalo sie jakos
    zakodowac jakby w transie bez myslania o nich, jest to ciekawa zdolnosc , zdolnosc
    do kodowania nez myslania o czyms o czym wydawaloby sie trzeba pomyslec) (pozniej
    jednak, czyli teraz kapka myslania na te tematy sie przydaje - zeby miec jasnosci i
    nie przeoczyc moze czegos, i moe tez po to by sie troche tego jak to dziala nauczyc
    na pamiec)
    >
    > tak naprawde chyab to jest jeszcze bardziej skomplikowane, mianowicie zawartosc
    sekcji importow zalezy od jej polozenia, a jej polozenie zalezy od rozmiaru sekcji
    kodu - co wymusza inna kolejnosc niz pisalem
    >
    > zdaje sie
    > - najpierw cod
    > - pozniej importy
    > - pozniej dane
    > - na koniec fixupy
    >
    > idzie sie z leka pochlastac (zwlaszcza ze musze to przerabiac w stosunku do wersji
    z polozeniemi sekcji wkodowanymi 'na sztywno')

    nowsza wersja

    minddetonator.htw.pl/organic8.zip

    wiekszosc constraintow usunieta - jeszcze cos tam zostalo i asm pewnie wywali sie na
    zbyt duzej asemblacji ale jestem zbyt 'sterany' by to dzis poprawic, ale jako ze
    zdaje sie wiekszosc roboty zrobiona spokojnie poprawi sie to jutro i asm juz bedzie w
    koncu 'limitless' (jeszcze mi tylko zostanie wtedy doklepac reszte opkodow)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: