-
Data: 2017-09-07 17:20:01
Temat: Re: [OT] (announce) organic asm
Od: fir <p...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]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
Następne wpisy z tego wątku
- 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
- 10.09.17 01:50 fir
- 10.09.17 11:33 fir
- 11.09.17 16:55 fir
- 11.09.17 17:03 fir
- 12.09.17 14:57 M.M.
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-14 granice
- 2025-07-14 Awaria VM?
- 2025-07-14 Gdańsk => Programista Kotlin <=
- 2025-07-14 Warszawa => Junior Rekruter <=
- 2025-07-14 Warszawa => Specjalista rekrutacji IT <=
- 2025-07-14 Wkłady do zniczy...
- 2025-07-14 Warszawa => Specjalista ds. Sprzętu Komputerowego <=
- 2025-07-14 Re: PO chroniło i chroni policyjnych bandziorów [zawiasy za katowanie obywatela (Poznań czerwiec 2012)]
- 2025-07-14 Warszawa => International Freight Forwarder <=
- 2025-07-14 Warszawa => Recruiter 360 <=
- 2025-07-14 Re: Rz?Âd ZAKAZUJE magazyn?Â?w energii ?!! Nowe prawo od 14 lipca to SZOK! ??Â
- 2025-07-14 Warszawa => Sales Assistant <=
- 2025-07-13 Fałszywe alerty
- 2025-07-12 dlaczego gadacie z tym debilem
- 2025-07-13 Unia Europejska przygotowuje nowy podatek