Thread View: pl.comp.lang.asm
11 messages
11 total messages
Started by Remek
Sun, 25 Nov 2007 14:47
Re: Kod przeszukujący ciąg liczb
Author: Remek
Date: Sun, 25 Nov 2007 14:47
Date: Sun, 25 Nov 2007 14:47
72 lines
3160 bytes
3160 bytes
Użytkownik "Bernard" napisał: > > Jesli chcesz sprawdzać liczby czterobajtowe to tak: > tutaj wycięło niestety dalszą część zdania - uzupełniam > "tego robić na pewno nie należy" Tobie niestety wycięło część zdania, a mianowicie, że "Twoim zdaniem". Moje jest całkiem inne. > > mov edi, data_items > > > > dec edi > > dec edi > > dec edi > > dec edi > To ilustruje, jak nie należy zmniejszać liczby o 4. Uwaga jw. Niby dlaczego? To jeden ze sposobów i chyba najszybszy. > > start_loop: > > > > inc edi > > inc edi > > inc edi > > inc edi > A tu, oprócz ilustracji, jak nie należy dodawać 4, mamy jeszcze > przykład > fatalnej konstrukcji pętli. Ładujemy wartość, zmniejszamy o > 4, zwiększamy o 4 i już po 8 instrukcjach mamy z powrotem to, co na > początku Mylisz się. Jest to jak najbardziej prawidłowa konstrukcja, która pobiera wszystkie dane w pętli. Nic nie dzieje się na zewnątrz. > > mov eax, [edi] > > cmp eax, 0 > Tu z kolei prezentacja, jak nie należy sprawdzać, czy liczba ma wartość > 0. Znów pytam dlaczego? Twoje "paternalistyczne" wymądrzanie się może wyprowadzić z równowagi. > > Itd. Jeśli mniejsze, to musisz dopasować ilość dec/inc, oraz rozmiar > Tu brakuje przykładu dopasowania, np. przy odstępie danych w pamięci > równym 100 bajtów - powinniśmy napisać 100 razy dec, a potem 100 razy > inc. Obowiązek podawania przykładów? Ciekawe. > > zastosowanych rejestrów do wielkości pobieranych danych. Do analizy > > takich pętli nieoceniony jest debugger. Natychmiast widać co jest > > "grane". > Alternatywnie można pisać kod w taki sposób, żeby było od razu widać, > ale taka technika nie przystoi hackerom. Tu już w ogóle nie wiadomo o co chodzi. > Poniżej wersja lamerska (nieciekawa i mało ambitna, bo za krótka) tego, > co przedstawiono wyżej. Każdy kod można napisać na różne sposoby. Przecież omawiamy prościutką pętlę początkującego. W miarę nabywania doświadczenia sam znajdzie szybsze, lepsze i bardziej dla siebie odpowiednie metody. Nie ma co się "nadymać", ponieważ chodzi o wskazanie błędów, a nie pisanie za kogoś kodu i narzucanie mu swoich sposobów. Remek
Re: Kod przeszukujący ciąg liczb
Author: Doleś
Date: Sun, 25 Nov 2007 15:36
Date: Sun, 25 Nov 2007 15:36
82 lines
3685 bytes
3685 bytes
Remek pisze: > Użytkownik "Bernard" napisał: > >>> Jesli chcesz sprawdzać liczby czterobajtowe to tak: > >> tutaj wycięło niestety dalszą część zdania - uzupełniam >> "tego robić na pewno nie należy" > > Tobie niestety wycięło część zdania, a mianowicie, że "Twoim zdaniem". > Moje jest całkiem inne. > >>> mov edi, data_items >>> >>> dec edi >>> dec edi >>> dec edi >>> dec edi > >> To ilustruje, jak nie należy zmniejszać liczby o 4. > > Uwaga jw. Niby dlaczego? To jeden ze sposobów i chyba najszybszy. > >>> start_loop: >>> >>> inc edi >>> inc edi >>> inc edi >>> inc edi > >> A tu, oprócz ilustracji, jak nie należy dodawać 4, mamy jeszcze >> przykład > fatalnej konstrukcji pętli. Ładujemy wartość, zmniejszamy o >> 4, zwiększamy o 4 i już po 8 instrukcjach mamy z powrotem to, co na >> początku > > Mylisz się. Jest to jak najbardziej prawidłowa konstrukcja, która pobiera > wszystkie dane w pętli. Nic nie dzieje się na zewnątrz. > >>> mov eax, [edi] >>> cmp eax, 0 > >> Tu z kolei prezentacja, jak nie należy sprawdzać, czy liczba ma wartość >> 0. > > Znów pytam dlaczego? Twoje "paternalistyczne" wymądrzanie się może > wyprowadzić z równowagi. > >>> Itd. Jeśli mniejsze, to musisz dopasować ilość dec/inc, oraz rozmiar > >> Tu brakuje przykładu dopasowania, np. przy odstępie danych w pamięci >> równym 100 bajtów - powinniśmy napisać 100 razy dec, a potem 100 razy >> inc. > > Obowiązek podawania przykładów? Ciekawe. > >>> zastosowanych rejestrów do wielkości pobieranych danych. Do analizy >>> takich pętli nieoceniony jest debugger. Natychmiast widać co jest >>> "grane". > >> Alternatywnie można pisać kod w taki sposób, żeby było od razu widać, >> ale taka technika nie przystoi hackerom. > > Tu już w ogóle nie wiadomo o co chodzi. > >> Poniżej wersja lamerska (nieciekawa i mało ambitna, bo za krótka) tego, >> co przedstawiono wyżej. > > Każdy kod można napisać na różne sposoby. Przecież omawiamy prościutką > pętlę początkującego. W miarę nabywania doświadczenia sam znajdzie > szybsze, lepsze i bardziej dla siebie odpowiednie metody. Nie ma co się > "nadymać", ponieważ chodzi o wskazanie błędów, a nie pisanie za kogoś > kodu i narzucanie mu swoich sposobów. > > Remek > > > > No w sumie to od razu mogę zadeklarować tablicę jak dd i powinno być po problemie. Nie wiem dlaczego od razu nie wpadłem na pomysł z tym rozmiarem. Przy pierwszym "mov eax, edi" nie dałem [] bo sądziłem, że to nie jest potrzebne bo mamy i tak tylko początek tablicy. Ale jednak nie miałem racji.
Re: Kod przeszukujący ciąg liczb
Author: Bernard
Date: Sun, 25 Nov 2007 19:16
Date: Sun, 25 Nov 2007 19:16
41 lines
2524 bytes
2524 bytes
Doleś wrote: >>>> A tu, oprócz ilustracji, jak nie należy dodawać 4, mamy jeszcze >>> przykład > fatalnej konstrukcji pętli. Ładujemy wartość, zmniejszamy o >>> 4, zwiększamy o 4 i już po 8 instrukcjach mamy z powrotem to, co na >>> początku >> >> Mylisz się. Jest to jak najbardziej prawidłowa konstrukcja, która pobiera >> wszystkie dane w pętli. Nic nie dzieje się na zewnątrz. Chodzi mi o prawidłowość konstrukcji typu a = x; a -= 4; a += 4; Ja w celu przypisania zmiennej a wartości x użyłbym raczej pojedynczej instrukcji a = x, ale jak widać są różne szkoły programowania. >>>> mov eax, [edi] >>>> cmp eax, 0 >> >>> Tu z kolei prezentacja, jak nie należy sprawdzać, czy liczba ma wartość >>> 0. >> >> Znów pytam dlaczego? Twoje "paternalistyczne" wymądrzanie się może >> wyprowadzić z równowagi. Oczywiście można pisać cmp, ale trudno to nazwać wzorcową techniką programowania x86. OR jest krótsze. >> Każdy kod można napisać na różne sposoby. Przecież omawiamy prościutką >> pętlę początkującego. W miarę nabywania doświadczenia sam znajdzie >> szybsze, lepsze i bardziej dla siebie odpowiednie metody. Nie ma co się >> "nadymać", ponieważ chodzi o wskazanie błędów, a nie pisanie za kogoś >> kodu i narzucanie mu swoich sposobów. Ano rzecz w tym, że 4 razy dec i 4 razy inc plus trzy skoki to nie jest "prosta" pętla. Ortodoksyjnie byłoby jeden raz add edi, 4 i dwa skoki. Ja złośliwie pokazałem coś trochę ciekawszego, optymalnego lub bliskiego optymalnemu.
Re: Kod przeszukujący ciąg liczb
Author: Bernard
Date: Sun, 25 Nov 2007 19:20
Date: Sun, 25 Nov 2007 19:20
20 lines
1530 bytes
1530 bytes
Remek wrote: > Tobie niestety wycięło część zdania, a mianowicie, że "Twoim zdaniem". > Moje jest całkiem inne. > >>> mov edi, data_items >>> >>> dec edi >>> dec edi >>> dec edi >>> dec edi > >> To ilustruje, jak nie należy zmniejszać liczby o 4. > > Uwaga jw. Niby dlaczego? To jeden ze sposobów i chyba najszybszy. Cztery instrukcje zależne, to minimum 4 cykle procesora, niezależnie od liczby potoków. add edi, 4 zajmuje jeden cykl i potok wykonawczy, LEA zajmie jeden cykl i potok AGU, nie zajmując wykonawczego. O wykonawcze konkuruje więcej instrukcji niż o AGU, czyli dociążenie AGU i odciążenie wykonawczego na ogół poprawia wydajność kodu.
Re: Kod przeszukujący ciąg liczb
Author: Wojciech Muła
Date: Sun, 25 Nov 2007 19:47
Date: Sun, 25 Nov 2007 19:47
17 lines
1507 bytes
1507 bytes
Bernard wrote: >>>>> mov eax, [edi] >>>>> cmp eax, 0 >>> >>>> Tu z kolei prezentacja, jak nie należy sprawdzać, czy liczba ma wartość >>>> 0. >>> >>> Znów pytam dlaczego? Twoje "paternalistyczne" wymądrzanie się może >>> wyprowadzić z równowagi. > > Oczywiście można pisać cmp, ale trudno to nazwać wzorcową techniką > programowania x86. OR jest krótsze. A najlepiej stosować sekwencję test/skok warunkowy, bo nowsze procesory to potrafią połączyć w jeden rozkaz (Intel nazywa toto macro-fusion). w.
Re: Kod przeszukujący ciąg liczb
Author: Remek
Date: Sun, 25 Nov 2007 23:32
Date: Sun, 25 Nov 2007 23:32
64 lines
3546 bytes
3546 bytes
Użytkownik "Bernard" napisał: > Chodzi mi o prawidłowość konstrukcji typu > a = x; > a -= 4; > a += 4; > Ja w celu przypisania zmiennej a wartości x użyłbym raczej pojedynczej > instrukcji a = x, ale jak widać są różne szkoły programowania. Czy ktoś Cię pytał, czego Ty byś użył? Wyluzuj. Odnoś się do postów autora wątku, a moje pozostaw w spokoju. Jeśli jeszcze trochę napiszesz programów, to zrozumiesz dlaczego tak zrobiłem. Ciekawe pętle konwertujące można zamknąć w procedury i umieścić w bibliotece. Wtedy moja konstrukcja pozwala uniknąć niejednoznaczności i jest jak najbardziej optymalna. Stosowanie innej konstrukcji powoduje w pewnych warunkach trudne czasem do znalezienia błędy. To raczej do Autora wątku, nie do Ciebie. > >>>> mov eax, [edi] > >>>> cmp eax, 0 > >> > >>> Tu z kolei prezentacja, jak nie należy sprawdzać, czy liczba ma wartość > >>> 0. > >> > >> Znów pytam dlaczego? Twoje "paternalistyczne" wymądrzanie się może > >> wyprowadzić z równowagi. > > Oczywiście można pisać cmp, ale trudno to nazwać wzorcową techniką > programowania x86. OR jest krótsze. I znów ta sama "śpiewka". Czy my tu omawiamy optymalizację kodu? Ja staram sie w jak njmniejszym stopniu naruszać konstrukcję zastosowaną przez Autora, bo o to tylko chodzi, aby wskazać oczywiste błędy. > >> Każdy kod można napisać na różne sposoby. Przecież omawiamy prościutką > >> pętlę początkującego. W miarę nabywania doświadczenia sam znajdzie > >> szybsze, lepsze i bardziej dla siebie odpowiednie metody. Nie ma co się > >> "nadymać", ponieważ chodzi o wskazanie błędów, a nie pisanie za kogoś > >> kodu i narzucanie mu swoich sposobów. > > Ano rzecz w tym, że 4 razy dec i 4 razy inc plus trzy skoki to nie jest > "prosta" pętla. Ortodoksyjnie byłoby jeden raz add edi, 4 i dwa skoki. Nie ja tę pętlę skonstruowałem. Autor użył inc, więc dołożyłem ich tyle, ile w konkretnym przypadku jest potrzebne, aby było wyraźnie widać o co chodzi. Nie sądzisz chyba, że odkryłeś add edi, 4 ? Jestem pewien, że kolega Doleś już sam na to wpadł bez Twoich podpowiedzi. > Ja złośliwie pokazałem coś trochę ciekawszego, optymalnego lub bliskiego > optymalnemu. Daruj już sobie, bo zaśmieciłeś wątek tak dokładnie, że trudno się doszukać meritum. Jeśli chcesz podyskutować o ciekawych, złośliwych itp. procedurach, załóż wątek na ten temat. Zrozum wreszcie, że odbiegasz od tematu i przeszkadzasz. Remek
Re: Kod przeszukujący ciąg liczb
Author: Remek
Date: Mon, 26 Nov 2007 12:18
Date: Mon, 26 Nov 2007 12:18
18 lines
1535 bytes
1535 bytes
Użytkownik "Bernard" napisał: > > Uwaga jw. Niby dlaczego? To jeden ze sposobów i chyba najszybszy. > Cztery instrukcje zależne, to minimum 4 cykle procesora, niezależnie od > liczby potoków. add edi, 4 zajmuje jeden cykl i potok wykonawczy, LEA > zajmie jeden cykl i potok AGU, nie zajmując wykonawczego. O wykonawcze > konkuruje więcej instrukcji niż o AGU, czyli dociążenie AGU i odciążenie > wykonawczego na ogół poprawia wydajność kodu. Zgadza się. Wydawało mi się, że inc może być szybsze. Sprawdziłem. Kod z: add edi, 4 wykonuje się 25% szybciej. Zawsze coś. Pozdrawiam
Re: Kod przeszukujący ciąg liczb
Author: Bernard
Date: Mon, 26 Nov 2007 19:12
Date: Mon, 26 Nov 2007 19:12
53 lines
2993 bytes
2993 bytes
Remek wrote: > Użytkownik "Bernard" napisał: > >> Chodzi mi o prawidłowość konstrukcji typu > >> a = x; >> a -= 4; >> a += 4; > >> Ja w celu przypisania zmiennej a wartości x użyłbym raczej pojedynczej >> instrukcji a = x, ale jak widać są różne szkoły programowania. > > Czy ktoś Cię pytał, czego Ty byś użył? Wyluzuj. Odnoś się do postów Hm..., wydawało mi się, że jest to grupa dyskusyjna. > autora wątku, a moje pozostaw w spokoju. Jeśli jeszcze trochę napiszesz > programów, to zrozumiesz dlaczego tak zrobiłem. Ciekawe pętle Trochę napisałem programów i rozumiem, dlaczego początkujący programiści popełniają takie błędy jak Ty. Jeśli ktoś dba o jakość pisanego oprogramowania to na ogół po paru takich wpadkach wie, jak to robić poprawnie. > konwertujące można zamknąć w procedury i umieścić w bibliotece. Wtedy > moja konstrukcja pozwala uniknąć niejednoznaczności i jest jak > najbardziej optymalna. Stosowanie innej konstrukcji powoduje w pewnych Wydaje mi się, że słowo "optymalny" ma dość jednoznacznie określone znaczenie, i tutaj akurat chyba nie pasuje. >> Oczywiście można pisać cmp, ale trudno to nazwać wzorcową techniką >> programowania x86. OR jest krótsze. > > I znów ta sama "śpiewka". Czy my tu omawiamy optymalizację kodu? Ja > staram sie w jak njmniejszym stopniu naruszać konstrukcję zastosowaną > przez Autora, bo o to tylko chodzi, aby wskazać oczywiste błędy. Tu na ogół omawiamy temat "jak dobrze napisać program". >> Ja złośliwie pokazałem coś trochę ciekawszego, optymalnego lub > bliskiego >> optymalnemu. > > Daruj już sobie, bo zaśmieciłeś wątek tak dokładnie, że trudno się > doszukać meritum. Jeśli chcesz podyskutować o ciekawych, złośliwych itp. A co konkretnie było niemerytorycznego w moich tekstach? > procedurach, załóż wątek na ten temat. Zrozum wreszcie, że odbiegasz od > tematu i przeszkadzasz. Myślę, że nie odbiegam, a że Tobie to przeszkadza - to już Twój problem.
Re: Kod przeszukujący ciąg liczb
Author: Remek
Date: Tue, 27 Nov 2007 15:12
Date: Tue, 27 Nov 2007 15:12
50 lines
2976 bytes
2976 bytes
Użytkownik "Bernard" napisał: > > Czy ktoś Cię pytał, czego Ty byś użył? Wyluzuj. Odnoś się do postów > Hm..., wydawało mi się, że jest to grupa dyskusyjna. Wydaje Ci się, że na grupie dyskusyjnej wszystko wolno? Poczytaj netykietę, a może zrozumiesz, że odbieganie od zasadniczwgo wątku jest zaśmiecaniem go i świadczy o braku kultury bycia w internecie. Jeśli chcesz dyskusji o swoich rozwiązaniach, załóż wątek na ten temat i podaj do niego odnośnik. > > Jeśli jeszcze trochę napiszesz > > programów, to zrozumiesz dlaczego tak zrobiłem. Ciekawe pętle > Trochę napisałem programów i rozumiem, dlaczego początkujący programiści > popełniają takie błędy jak Ty. Jeśli ktoś dba o jakość pisanego > oprogramowania to na ogół po paru takich wpadkach wie, jak to robić > poprawnie. To co Tobie wydaje się błędem, dla mnie jest całkiem optymalne. Widocznie jeszcze zbyt mało pisałeś wielowariantowych pętli, aby zrozumieć w czym rzecz. > > konwertujące można zamknąć w procedury i umieścić w bibliotece. Wtedy > > moja konstrukcja pozwala uniknąć niejednoznaczności i jest jak > > najbardziej optymalna. Stosowanie innej konstrukcji powoduje w pewnych > Wydaje mi się, że słowo "optymalny" ma dość jednoznacznie określone > znaczenie, i tutaj akurat chyba nie pasuje. Słusznie napisałeś - "Wydaje mi się". Mnie wydaje się całkiem inaczej, ale kogo to obchodzi? > > Czy my tu omawiamy optymalizację kodu? > Tu na ogół omawiamy temat "jak dobrze napisać program". Tu to znaczy na grupie, czy w konkretnym wątku? > Myślę, że nie odbiegam, a że Tobie to przeszkadza - to już Twój problem. Tak naprawdę mnie nie przeszkadza. Jeśli nie przeszkadza również Autorowi wątku, to nie ma sprawy. I nie reagował bym, gdybyś nie krytykował moich metod w sposób świadczący o braku kultury bycia. Rozumiesz? Wątpię? Remek
Re: Kod przeszukujący ciąg liczb
Author: Bernard
Date: Tue, 27 Nov 2007 18:16
Date: Tue, 27 Nov 2007 18:16
74 lines
4311 bytes
4311 bytes
Remek wrote: > Użytkownik "Bernard" napisał: > >>> Czy ktoś Cię pytał, czego Ty byś użył? Wyluzuj. Odnoś się do postów > >> Hm..., wydawało mi się, że jest to grupa dyskusyjna. > > Wydaje Ci się, że na grupie dyskusyjnej wszystko wolno? Poczytaj > netykietę, a może zrozumiesz, że odbieganie od zasadniczwgo wątku jest > zaśmiecaniem go i świadczy o braku kultury bycia w internecie. Jeśli > chcesz dyskusji o swoich rozwiązaniach, załóż wątek na ten temat i podaj > do niego odnośnik. A gdzie odbiegłem od wątku? Cały czas mowa jest o programie, który znajduje największą liczbę w wektorze. >> Trochę napisałem programów i rozumiem, dlaczego początkujący > programiści >> popełniają takie błędy jak Ty. Jeśli ktoś dba o jakość pisanego >> oprogramowania to na ogół po paru takich wpadkach wie, jak to robić >> poprawnie. > > To co Tobie wydaje się błędem, dla mnie jest całkiem optymalne. Widocznie > jeszcze zbyt mało pisałeś wielowariantowych pętli, aby zrozumieć w czym > rzecz. "Optymalne" oznacza dokładnie "najlepsze". Jeśli bez szczególnego wysiłku i wyrafinowanych technik - od niechcenia - można napisać kod o 40% krótszy i o 25% szybszy od "wzorcowego", to z całą pewnością ten "wzorcowy" optymalny nie jest. Z innych wątków na tej grupie wynika, że programowanie asemblerowe to dla Ciebie nowa i niezgłębiona dotąd dziedzina. Skąd więc to przekonanie, że to, co prezentujesz, jest warte zaprezentowania jako wzór? Mam sporą praktykę zawodową, ale przez cały czas się uczę i zauważam błędy czy nieoptymalności w tym, co piszę. To normalne, tak samo jak poprawianie tych błędów. O ile oczywiście uzna się, że ma się co poprawiać - a to, jak mniemam, jest właśnie tym, co różni dobrego informatyka od gorszego. Programowanie asemblerowe - to właśnie cyzelowanie detali. Jeśli kod asemblerowy napisany ręcznie jest gorszy od kodu wygenerowanego przez kompilator średnio optymalizujący, to należy raczej użyć języka wysokiego poziomu i kompilatora, niż psuć wydajność i powiększać zajętość pamięci pisząc w asemblerze. Ty jako wzór "optymalności" prezentujesz dodawanie przy użyciu czterech zależnych instrukcji i dwukrotne adjustowanie wskaźnika, aby zyskał pierwotną wartość. To jest właśnie przykład psucia kodu. >> Wydaje mi się, że słowo "optymalny" ma dość jednoznacznie określone >> znaczenie, i tutaj akurat chyba nie pasuje. > > Słusznie napisałeś - "Wydaje mi się". Mnie wydaje się całkiem inaczej, > ale kogo to obchodzi? Może wobec tego zajrzyj do słownika języka polskiego, a potem dopiero podyskutujemy, ok? >>> Czy my tu omawiamy optymalizację kodu? > >> Tu na ogół omawiamy temat "jak dobrze napisać program". > > Tu to znaczy na grupie, czy w konkretnym wątku? I tu i tu. >> Myślę, że nie odbiegam, a że Tobie to przeszkadza - to już Twój > problem. > > Tak naprawdę mnie nie przeszkadza. Jeśli nie przeszkadza również Autorowi > wątku, to nie ma sprawy. I nie reagował bym, gdybyś nie krytykował moich > metod w sposób świadczący o braku kultury bycia. Rozumiesz? Wątpię? Coś pisałeś o kulturze, czy mi się wydawało? Pozdrawiam cieplutko...
Re: Kod przeszukujący ciąg liczb
Author: Remek
Date: Tue, 27 Nov 2007 18:36
Date: Tue, 27 Nov 2007 18:36
48 lines
2864 bytes
2864 bytes
Użytkownik "Bernard" napisał: > Z innych wątków na tej grupie wynika, że programowanie asemblerowe to > dla Ciebie nowa i niezgłębiona dotąd dziedzina. Programista uczy sie całe życie i ciągle będzie popełniał błędy. I nie ma prawa przekonywać, że jego rozwiązanie jest jedynie słuszne. Może natomiast proponować. To drobna różnica. > Skąd więc to > przekonanie, że to, co prezentujesz, jest warte zaprezentowania jako > wzór? Gdzie tak napisałem. Zacytuj. > Ty jako wzór "optymalności" prezentujesz dodawanie przy użyciu czterech > zależnych instrukcji i dwukrotne adjustowanie wskaźnika, aby zyskał > pierwotną wartość. To jest właśnie przykład psucia kodu. Nieprawda. Twój upór w nieprawdzie jest zadziwiający. Pokazałem tylko autorowi wątku o co chodzi. Optymalne (dla siebie) rozwiązanie znakazł już sam. > >> Wydaje mi się, że słowo "optymalny" ma dość jednoznacznie określone > >> znaczenie, i tutaj akurat chyba nie pasuje. > > > > Słusznie napisałeś - "Wydaje mi się". Mnie wydaje się całkiem inaczej, > > ale kogo to obchodzi? > > Może wobec tego zajrzyj do słownika języka polskiego, a potem dopiero > podyskutujemy, ok? Słowo "optymalny" ma znaczenie subiektywno-ocenne. Jednemu podoba się córka, a drugiemu teściowa. Twoja ocena, czy coś jest optymalne, mało mnie obchodzi. > > Tak naprawdę mnie nie przeszkadza. Jeśli nie przeszkadza również Autorowi > > wątku, to nie ma sprawy. I nie reagował bym, gdybyś nie krytykował moich > > metod w sposób świadczący o braku kultury bycia. Rozumiesz? Wątpię? > Coś pisałeś o kulturze, czy mi się wydawało? Pisałem, ale nie wyciągasz wniosków. Po prostu niektórzy sa niereformowalni. Remek
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads