eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming(announce) organic asm › Re: [OT] (announce) organic asm
  • X-Received: by 10.31.61.143 with SMTP id k137mr40013vka.24.1504909052764; Fri, 08 Sep
    2017 15:17:32 -0700 (PDT)
    X-Received: by 10.31.61.143 with SMTP id k137mr40013vka.24.1504909052764; Fri, 08 Sep
    2017 15:17:32 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!go
    blin1!goblin.stu.neva.ru!h15no1181486qta.1!news-out.google.com!a26ni554qta.0!nn
    tp.google.com!h15no1181480qta.1!postnews.google.com!glegroupsg2000goo.googlegro
    ups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Fri, 8 Sep 2017 15:17:32 -0700 (PDT)
    In-Reply-To: <b...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=37.47.46.240;
    posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
    NNTP-Posting-Host: 37.47.46.240
    References: <7...@g...com>
    <oo6r6b$bcp$1@node1.news.atman.pl> <oohior$19n$1@node2.news.atman.pl>
    <0...@g...com>
    <ook8o5$gs1$2@node2.news.atman.pl>
    <2...@g...com>
    <ookj75$qs8$1@mx1.internetia.pl>
    <8...@g...com>
    <1...@g...com>
    <0...@g...com>
    <1...@g...com>
    <8...@g...com>
    <2...@g...com>
    <f...@g...com>
    <b...@g...com>
    <3...@g...com>
    <f...@g...com>
    <b...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <0...@g...com>
    Subject: Re: [OT] (announce) organic asm
    From: fir <p...@g...com>
    Injection-Date: Fri, 08 Sep 2017 22:17:32 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:211498
    [ ukryj 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: