eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming(announce) organic asm › Re: [OT] (announce) organic asm
  • Data: 2017-09-08 01:27:28
    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: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')

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: