eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › (announce) organic asm
Ilość wypowiedzi w tym wątku: 61

  • 21. Data: 2017-09-06 21:59:45
    Temat: Re: [OT] (announce) organic asm
    Od: Roman Tyczka <n...@b...no>

    On Wed, 6 Sep 2017 21:01:44 +0200, N...@g...pl wrote:

    > odważny jest, co.
    > nie boi się przyznawać do znajomości assemblera.
    > boję się, żeby Mu się nic nie stało.

    Nie z takimi gierojami radziła sobie Wielka Siostra Oddziałowa :-)

    --
    pozdrawiam
    Roman Tyczka


  • 22. Data: 2017-09-06 22:00:07
    Temat: Re: [OT] (announce) organic asm
    Od: fir <p...@g...com>

    tak wogole pisanie asma nie jest trudne choc ma troche trudniejsze kawalki

    moe przedstawic jeden problem bo zrobilem na odwal (tj pierwsza iteracje problemu)
    i musze tu troche poprawic

    najpierw asembler zbiera info nt importow
    (na co slkada sie lista nazw dll-ek i wywolywanych z nich funkcji)

    ja to zbieram do tablicy o stalym rozmarze (np 100 na 100) ktora ma taka zawartosc

    "moduleX", "fooA", "fooB", NULL, NULL, ...
    "moduleY", "fooG", "fooH", "fooI", NULL,
    ..
    "moduleZ", "fooP", "fooQ", "fooR", NULL, ...

    "moduleW", "fooI", NULL, NULL, NULL,
    "moduleT", "fooS", "fooT", NULL, NULL,
    NULL,
    NULL,


    i to jest jeden maly problem bo moze nastapic przepelnienie jesli importowanych
    dll-ek bedzie wiecej niz 100 lub importowanych funkcji dla jednej dll-ki bedzie
    wiecej niz 99

    taka tablica jest jednak wygodna
    i prosta

    sam to pewnie zostawie tak jak jest tylko rozmaiar zahardkoduje na wiekszy np 1000 na
    1000 (jest to tablica wskaznikow wiec te pare mega mozna poswiecic ;c - ale nie jest
    to ideologicznie czyste (w takich wypadkach jednak wole zrobic w pierwszej iteracji
    cos co jest proste niz ogolne)

    dalej problem jest nawet wiekszy bo na podstawie zawartosci tej tablicy trzeba
    zbudowac sekcje importow w exacu

    ta sekcja sklada sie z czegos takiego:

    1)
    najpierw jest tablica (N+1)*20 bajtow
    gdzie N to liczna importowanych modulow
    gdzie ustawia sie pewne wskazniki
    - to sie buduje dosyc latwo

    dalej sa jeszcze dwie rzeczy to wpisania

    2 trzebe przekopiowac te wszystki stringi z wspomnienej tablicy importow

    zdaje sie ze ich kolejnosc nie jest nawet zbyt wazna wiec moge jakby poleciec po
    kolei wierszami ignorujac nule i wrzucajac strcpy (chyba moge zalozyc ze nazwy maja
    max 32 znaki choc nie jestem pewien

    wymaga to jednach chyba napisania dosyc glupiej funkcji

    int RowColumn2LinearOrder(x,y)

    bo pozniej bede potrzebowal uzyskania dokladnego offsetu do tej nazyw dla
    ukladu modul-funkcja

    taka funkcja przeliczania z x y na ten linearny offset jest dosyc glupia, ale chyab
    tak zrobie (glupia ale stosunkowo malo roboty a musze chodzic na kompromisy z wlasnym
    lenistwem/ograniczeniami energetycznymi)

    3) dalej trzeba jeszcze zbudowac listy wskaznikow na te nazwy, te listy wskaznikow
    maja byc per-modul i bodajrze konczyc sie zerem na koncu listy funkci dla kazdego
    modulu

    w sumie tutaj chyba moge wykorzystac ten sam liniowy porzadek korzystajac z tego ze w
    tym liniowym listy nazw funkcji sa przetykane nazwami modulow, tylko zamiast
    wskaznika na nazwe modulu dam zero

    to chyab da sie zrobic latwo jesli gdzies sie nie walne (ogolnie to nie jest trudne
    ale problem jest ze zrozumieniem zasad tego formatu oraz z nie popelnieniem pomylki w
    generowaniu tych danych)

    oprocz tego trzeba jeszcze zrobic identyczna kopie tej tablicy bo jedna trzyma nazwy
    na stale a druga wypelnia
    prawdziwymi wskaznikami do implementacji
    loader windowsa

    na koniec w tej tablicy z punktu 1) wypelnie sie wskazniki do tych 2 list,
    i do nazwy modulu dla kazdego modulu

    w sumie to powinno dzialac sa tylko dwie wspomniene niedogodnosci
    1) mozna osiagnac limit kwadratowej tablicy
    2) ta funkcja przechodzenia z x,y na linerana kolejnosc jest drobinke glupia/brzydka

    w sumie pewnie trzebbylo to zrobic inaczej tj budowac liste par modul-funkcja na
    koniec ja posortowac i nie byloby straty pamieci i linearny porzadek
    sam by sie zrobil, ale chyba zalozylem ze kwadratowa tablica bedzie prostsza (nie
    trzeba bylo pisac sortowania ;c

    na razie chyba zrobie na kwadratowej moze kiedys pozniej poprawie na ta liste 1d - ew
    nastepnym razem bedzie wiadomo by takie przypadki robic od razu na liscie 1d






  • 23. Data: 2017-09-06 22:35:23
    Temat: Re: [OT] (announce) organic asm
    Od: fir <p...@g...com>

    W dniu środa, 6 września 2017 21:59:48 UTC+2 użytkownik Roman Tyczka napisał:
    > On Wed, 6 Sep 2017 21:01:44 +0200, N...@g...pl wrote:
    >
    > > odważny jest, co.
    > > nie boi się przyznawać do znajomości assemblera.
    > > boję się, żeby Mu się nic nie stało.
    >
    > Nie z takimi gierojami radziła sobie Wielka Siostra Oddziałowa :-)
    >
    widze ze zarciki tu odchodza na poziomie kołka w płocie..

    co do asma to nie widzialem w zyciu jeszcze dobrego programisty ktory by nie znal
    asma

    - moim zdaniem spokojnie mozna zalozyc ze jesli ktos neguje znaczenie rozumienia
    semblera to jest to jakas lama a jak mowilem ze zdaniem lam nie ma co sie liczyc


    (mozna zarzucic pewnie ze to wnioskowanie wyzej jest co nieco logicznie 'rozluznione'
    ale moim zdaniem to sie jednak tak czy owak skleja (choc w sumie mozna by sie nad tym
    zastanowic ale teraz jakos nie jestem w temacie, zieew))


  • 24. Data: 2017-09-06 23:33:32
    Temat: Re: [OT] (announce) organic asm
    Od: fir <p...@g...com>

    w ogole moge dodac ze takie "pisanie pod specyfikacje okreslonego formatu" jest
    jakos dziwnie stresujace - Wiadomo zreszta z czego to wynika jak sie koduje normalnie
    to albo cos zadziala tak albo inaczej ale zadziala, a pisanie pod format albo cos
    zadziala jak jest zgodne z formatem albo wogole - i to sie dziwnie pisze, zwlaszcza
    jak ten format jest rozbudowany


  • 25. Data: 2017-09-07 00:27:08
    Temat: Re: [OT] (announce) organic asm
    Od: fir <p...@g...com>

    ok wstepnie to przetestowalem z ta funkcja
    XY2Linear i to chyba dziala, mam nadzieje ze tu nie ma jakiegos uga bo idzie sie w
    tym troche zagubic (wczesniej mialem to zrobione zupelnie na odwal tj wszystko
    kopiowalem do sekcji pod ofsety x+y*max_x
    co oczywiscie marnowalo mase pamieci teraz z tym tlumaczeniem na linearne offsety
    przynajmniej to jest upakowane

    w tym asmie jest zreszta wiecej tego typu glupich problemow - glownie taki ze w
    sekcji kodu odwoluje sie do sekcji data i sekcji importow a generujac sekcje kodu
    jeszcze nie wiem gdzie leza konkretnie data i importy (bo leza po sekcji kodu a ta ma
    zmienna dlugosc - trzeba wiec wygenerowac chyba kod z nullami i tablica fixupow ktora
    na koniec trzeba wypelnic
    - na razie zrobilem to na stale przy zalozeniu maksymalnego rozmiaru sekcji kodu i to
    sa wlasnie te glowne ograniczenia (constrainty) ktore jeszcze musze usunac


  • 26. Data: 2017-09-07 01:16:24
    Temat: Re: [OT] (announce) organic asm
    Od: Szyk Cech <s...@o...pl>

    > co do asma to nie widzialem w zyciu jeszcze dobrego programisty ktory by nie znal
    asma

    Z tym się zgodzę. Obecnie po studiach jest masa takich łajz co nie znają
    Asemblera ani nawet C++...


  • 27. Data: 2017-09-07 17:20:01
    Temat: Re: [OT] (announce) organic asm
    Od: fir <p...@g...com>

    W dniu środa, 6 września 2017 22:00:08 UTC+2 użytkownik fir napisał:
    > tak wogole pisanie asma nie jest trudne choc ma troche trudniejsze kawalki
    >
    > moe przedstawic jeden problem bo zrobilem na odwal (tj pierwsza iteracje problemu)
    > i musze tu troche poprawic
    >
    > najpierw asembler zbiera info nt importow
    > (na co slkada sie lista nazw dll-ek i wywolywanych z nich funkcji)
    >
    > ja to zbieram do tablicy o stalym rozmarze (np 100 na 100) ktora ma taka zawartosc
    >
    > "moduleX", "fooA", "fooB", NULL, NULL, ...
    > "moduleY", "fooG", "fooH", "fooI", NULL,
    > ..
    > "moduleZ", "fooP", "fooQ", "fooR", NULL, ...
    >
    > "moduleW", "fooI", NULL, NULL, NULL,
    > "moduleT", "fooS", "fooT", NULL, NULL,
    > NULL,
    > NULL,
    >
    >
    > i to jest jeden maly problem bo moze nastapic przepelnienie jesli importowanych
    dll-ek bedzie wiecej niz 100 lub importowanych funkcji dla jednej dll-ki bedzie
    wiecej niz 99
    >
    > taka tablica jest jednak wygodna
    > i prosta
    >
    > sam to pewnie zostawie tak jak jest tylko rozmaiar zahardkoduje na wiekszy np 1000
    na 1000 (jest to tablica wskaznikow wiec te pare mega mozna poswiecic ;c - ale nie
    jest to ideologicznie czyste (w takich wypadkach jednak wole zrobic w pierwszej
    iteracji cos co jest proste niz ogolne)
    >
    > dalej problem jest nawet wiekszy bo na podstawie zawartosci tej tablicy trzeba
    zbudowac sekcje importow w exacu
    >
    > ta sekcja sklada sie z czegos takiego:
    >
    > 1)
    > najpierw jest tablica (N+1)*20 bajtow
    > gdzie N to liczna importowanych modulow
    > gdzie ustawia sie pewne wskazniki
    > - to sie buduje dosyc latwo
    >
    > dalej sa jeszcze dwie rzeczy to wpisania
    >
    > 2 trzebe przekopiowac te wszystki stringi z wspomnienej tablicy importow
    >
    > zdaje sie ze ich kolejnosc nie jest nawet zbyt wazna wiec moge jakby poleciec po
    kolei wierszami ignorujac nule i wrzucajac strcpy (chyba moge zalozyc ze nazwy maja
    max 32 znaki choc nie jestem pewien
    >
    > wymaga to jednach chyba napisania dosyc glupiej funkcji
    >
    > int RowColumn2LinearOrder(x,y)
    >
    > bo pozniej bede potrzebowal uzyskania dokladnego offsetu do tej nazyw dla
    > ukladu modul-funkcja
    >
    > taka funkcja przeliczania z x y na ten linearny offset jest dosyc glupia, ale chyab
    tak zrobie (glupia ale stosunkowo malo roboty a musze chodzic na kompromisy z wlasnym
    lenistwem/ograniczeniami energetycznymi)
    >
    > 3) dalej trzeba jeszcze zbudowac listy wskaznikow na te nazwy, te listy wskaznikow
    maja byc per-modul i bodajrze konczyc sie zerem na koncu listy funkci dla kazdego
    modulu
    >
    > w sumie tutaj chyba moge wykorzystac ten sam liniowy porzadek korzystajac z tego ze
    w tym liniowym listy nazw funkcji sa przetykane nazwami modulow, tylko zamiast
    wskaznika na nazwe modulu dam zero
    >
    > to chyab da sie zrobic latwo jesli gdzies sie nie walne (ogolnie to nie jest trudne
    ale problem jest ze zrozumieniem zasad tego formatu oraz z nie popelnieniem pomylki w
    generowaniu tych danych)
    >
    > oprocz tego trzeba jeszcze zrobic identyczna kopie tej tablicy bo jedna trzyma
    nazwy na stale a druga wypelnia
    > prawdziwymi wskaznikami do implementacji
    > loader windowsa
    >
    > na koniec w tej tablicy z punktu 1) wypelnie sie wskazniki do tych 2 list,
    > i do nazwy modulu dla kazdego modulu
    >
    > w sumie to powinno dzialac sa tylko dwie wspomniene niedogodnosci
    > 1) mozna osiagnac limit kwadratowej tablicy
    > 2) ta funkcja przechodzenia z x,y na linerana kolejnosc jest drobinke
    glupia/brzydka
    >
    > w sumie pewnie trzebbylo to zrobic inaczej tj budowac liste par modul-funkcja na
    koniec ja posortowac i nie byloby straty pamieci i linearny porzadek
    > sam by sie zrobil, ale chyba zalozylem ze kwadratowa tablica bedzie prostsza (nie
    trzeba bylo pisac sortowania ;c
    >
    > na razie chyba zrobie na kwadratowej moze kiedys pozniej poprawie na ta liste 1d -
    ew nastepnym razem bedzie wiadomo by takie przypadki robic od razu na liscie 1d

    w sumei chyba dobrze ze sie nameczylem wklepujac ten opis bo sam sobie moge
    odpowiedziec
    1) co do tego dziwnego kodu z tlumaczeniem pozycji w 2 wymiarowej tablicy na linearny
    to nie jest on az tak dziwny gdy 'wbudowac' to w kod ktory wstawia alementy do tej
    tablicy (bo temu i tak sie przyda pamietanie ile elementow jest w wierszu)
    2) problem z przepelnieniem sie statycznej tablicy dwuwymiarowej mozna zasadniczo
    rozwiacac robiac z tego kontener typu "petla mallokow w malloku"
    no i po prostu realokujac wiersze przy wstawianiu, to rozwiaze tez (czesciowo ;c)
    problem z nadmierną zajatoscia pamieci na nic czyli NULLE, koszty czasowe czyli
    pewnie ta milisekunde (czy pare czy ile to jest) na jako zejdzie wywolanie 1000
    reallokow przy wstawianiu tysiaca nazw, moge sobie chyba darowac

    byc moze moge sobie nawet tak naprawde napisac taki resizowalny kontener bazujac na
    mojej idei czunkow ("resizable chunk of resizable chunks") moze pozniej zakoduje bo
    to malo roboty


  • 28. Data: 2017-09-07 17:46:48
    Temat: Re: [OT] (announce) organic asm
    Od: wloochacz <w...@n...spam.gmail.com>

    W dniu 2017-09-07 o 01:16, Szyk Cech pisze:
    >> co do asma to nie widzialem w zyciu jeszcze dobrego programisty ktory
    >> by nie znal asma
    >
    > Z tym się zgodzę. Obecnie po studiach jest masa takich łajz co nie znają
    > Asemblera ani nawet C++...
    Lepsza łajza, która nie zna asemblera ani "nawet" C++ (tu wpisać dowolny
    znany i nieznany język programowania), niż taka, która nie zna OOP i
    wzorców projektowych.
    Nie wie co to SOLID i KISS.
    Nie zna podstaw programowania współbieżnego (prawda, fir?) ani
    sieciowego (to też do ciebie, fir).
    Nie potrafi zaprojektować systemu, który trzeba utrzymać, a nie tylko
    napisać coś, co "działa".

    --
    wloochacz


  • 29. Data: 2017-09-07 19:11:17
    Temat: Re: [OT] (announce) organic asm
    Od: fir <p...@g...com>

    W dniu czwartek, 7 września 2017 17:47:35 UTC+2 użytkownik wloochacz napisał:
    > W dniu 2017-09-07 o 01:16, Szyk Cech pisze:
    > >> co do asma to nie widzialem w zyciu jeszcze dobrego programisty ktory
    > >> by nie znal asma
    > >
    > > Z tym się zgodzę. Obecnie po studiach jest masa takich łajz co nie znają
    > > Asemblera ani nawet C++...
    > Lepsza łajza, która nie zna asemblera ani "nawet" C++ (tu wpisać dowolny
    > znany i nieznany język programowania), niż taka, która nie zna OOP i
    > wzorców projektowych.
    > Nie wie co to SOLID i KISS.
    > Nie zna podstaw programowania współbieżnego (prawda, fir?) ani
    > sieciowego (to też do ciebie, fir).
    > Nie potrafi zaprojektować systemu, który trzeba utrzymać, a nie tylko
    > napisać coś, co "działa".
    >

    heh, ciekawe pytanie ale nie umiem na nie jasno odpowiedziec (moze za jakis czas)


    [co do innych kwestii powyzej to nie calkiem jest to prawda (w dwu punktach jest
    prawda ale w trzech nie)]


  • 30. Data: 2017-09-07 19:52:04
    Temat: Re: [OT] (announce) organic asm
    Od: fir <p...@g...com>

    acha zapomnielem ze jeszcze nalezaloby podliczyc rozmiar tej sekcji importow

    zalozuwszy M - liczba modulow, N - liczba wszystkich nazw

    rozmiar 'deskryptorow' modulow = (M+1)* 20

    rozmiar wszystkich nazw = n*0x20

    rozmiar tablic 2* (n+1) * 4


    to chyba wszystko wiec

    m*20+20 + n*32 + (n+1)*8 =

    28 + 20*m + n*40

    o ile si enie pomylilem, dla 10 moduliow i 40 nazw byloby 1600 + 200 + 28 bajtow

    (wyliczenia potrzebne bo w pliku exe trzeba miescic i przesuwac te sekcje co wlasnie
    mi robi troche problemu)

strony : 1 . 2 . [ 3 ] . 4 ... 7


Szukaj w grupach

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: