-
X-Received: by 10.31.147.199 with SMTP id v190mr3859vkd.10.1504728007405; Wed, 06 Sep
2017 13:00:07 -0700 (PDT)
X-Received: by 10.31.147.199 with SMTP id v190mr3859vkd.10.1504728007405; Wed, 06 Sep
2017 13:00:07 -0700 (PDT)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!peer01.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-medi
a.com!news.highwinds-media.com!h15no306682qta.1!news-out.google.com!a26ni166qta
.0!nntp.google.com!q8no309244qtb.0!postnews.google.com!glegroupsg2000goo.google
groups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Wed, 6 Sep 2017 13:00:07 -0700 (PDT)
In-Reply-To: <2...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=37.47.0.162;
posting-account=Sb6m8goAAABbWsBL7gouk3bfLsuxwMgN
NNTP-Posting-Host: 37.47.0.162
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>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f...@g...com>
Subject: Re: [OT] (announce) organic asm
From: fir <p...@g...com>
Injection-Date: Wed, 06 Sep 2017 20:00:07 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Body-CRC: 3568808424
X-Received-Bytes: 5646
Xref: news-archive.icm.edu.pl pl.comp.programming:211472
[ ukryj nagłówki ]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
Następne wpisy z tego wątku
- 06.09.17 22:35 fir
- 06.09.17 23:33 fir
- 07.09.17 00:27 fir
- 07.09.17 01:16 Szyk Cech
- 07.09.17 17:20 fir
- 07.09.17 17:46 wloochacz
- 07.09.17 19:11 fir
- 07.09.17 19:52 fir
- 07.09.17 19:53 fir
- 07.09.17 20:17 wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU
- 08.09.17 01:12 fir
- 08.09.17 01:27 fir
- 09.09.17 00:17 fir
- 09.09.17 14:20 fir
- 09.09.17 21:57 wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-06 PROGRAM DOPŁAT DO AUT ELEKTRYCZNYCH TO ABSURD. ZA ŚRODKI Z KPO KUPIMY NIEMIECKIE I CHIŃSKIE AUTA
- 2025-02-05 ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-07 Smar do video
- 2025-02-06 Litowe baterie AA Li/FeS2 a alkaliczne
- 2025-02-07 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-07 Warszawa => System Architect (Java background) <=
- 2025-02-07 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-07 Warszawa => Solution Architect (Java background) <=
- 2025-02-07 Gliwice => Ekspert IT (obszar systemów sieciowych) <=
- 2025-02-07 Lublin => Programista Delphi <=
- 2025-02-07 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-02-07 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-07 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo