-
11. Data: 2010-11-13 10:56:50
Temat: Re: podr cznik do assemblera
Od: "Bogdan (bogdro)" <b...@p...gazeta.pl>
W dniu 13.11.2010 00:42, Mariusz Marszałkowski pisze:
> On 8 Lis, 18:36, "Bogdan (bogdro)" <b...@p...gazeta.pl> wrote:
>> kompilatorów/asemblerów, ale algorytmów nauczyć się z niej można.
> W jakim sensie można się z niej uczyć algorytmów?
Chodzi mi o to, jak coś zrobić "ogólnie", nie z kodu. Na przykład,
korzystałem kiedyś z algorytmów operacji na liczbach "wielokrotnej
precyzji" - takich, których nie da się zmieścić w jednym lub co
najwyżej dwóch rejestrach. Jest w książce opisane dzielenie liczby
128-bitowej przez 32-bitową i skorzystałem bardziej z opisu algorytmu,
niż z podanego w książce konkretnego kodu, napisanego na podstawie
tego algorytmu.
Może nie ma w książce schematów blokowych, ale nie jest ona napisana
w stylu "aby wykonać to a tamto, wykonajcie ten kod, a aby zrobić coś
tam, wykonajcie ten kod potem" bez tłumaczenia w ogóle. AoA jest
pisana dla studentów, na cele bodajże 1-semestralnego kursu asemblera
i ma w miarę szybko dać jakiekolwiek podstawy języka.
--
Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS)
Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
www.Xiph.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
-
12. Data: 2010-11-13 12:42:53
Temat: Re: podrcznik do assemblera
Od: "Remek" <d...@g...com>
Użytkownik "yesma" napisał:
> podałbyś jakiś przykład procki ?, chciałbym sprawdzić.
Jasne. Tylko muszę to odkopać, bo walczyłem z tym kilka lat temu. Mogę tylko
na razie powiedzieć, że chodziło mi główniw o procedurę dzielenia przez
dzielnik
większy od rejestu. Podana w książce procedura daje dziwaczne wyniki. Ja ten
problem wreszcie rozwiązałem dzięki kawałkowi procedury jaki podał mi ktoś
na tej grupie. Po jej zrozumieniu i rozwinięciu mogę teraz dzielić dowolnie
duże liczby bez ograniczenia rozmiaru dzielnika.
Wracając do tematu. Proszę o cierpliwość. Mam to gdzieś na dysku. Jak znajdę
to mogę wrzucić na grupę.
Remek
-
13. Data: 2010-11-13 13:58:54
Temat: Re: podręcznik do assemblera
Od: "Remek" <d...@g...com>
Użytkownik "Mariusz Marszałkowski" napisał:
> Czy można znaleźć na rynku jakiś podręcznik do assemblera...
Z moich już kilkuletnich doświadczeń "zabawy" w pisanie programów w języku
asemblera wynika:
Adembler to program asemblujący. Pliki źródłowe piszemy w języku danego
asemblera. Jest ich wiele dedykowanych głównie na konkretny procesor. Aby
wiedzieć czego szukać musimy załozyć pod jaki procesor chcemy pisać. Aby móc
coś konkretnego osiągnąć potrzebna jest jeszcze gruntowna wiedza na temat
dostępnych insrukcji procesora, wiedza na temat systemu operacyjnego, w
którym maja działać programy, oraz jeśli chcelibyśmy pisać np. sterowniki to
będzie potrzebna gruntowna wiedza na temat danego sprzętu, dostęp do
specyfikacji producenta itd. itp.
To rozległy temat.
Remek
PS Jest grupa pl.comp.lang.asm
-
14. Data: 2010-11-13 17:07:54
Temat: Re: podręcznik do assemblera
Od: "identifikator: 20040501" <N...@g...pl>
nie oszukujmy się, niskopoziomowcem trzeba się urodzić i jak nie wyssałeś
tej wiedzy z mlekiem matki to żadne dzieło Ci nie pomoże... mnie się podobał
Vlad Pirogow, kosmos normalnie...
-
15. Data: 2010-11-13 21:34:33
Temat: Re: podręcznik do assemblera
Od: Mariusz Marszałkowski <m...@g...com>
On 13 Lis, 14:58, "Remek" <d...@g...com> wrote:
> To rozległy temat.
Czasami w jakimś programie jakaś procedurę chciałbym napisać w
asemblerze zamiast w C++ i uzyskać szybszy kod niż wygenerowany
przez kompilator. Jakie platformy? Te najbardziej wydajne procesory
AMD i
Intela.
Pozdrawiam
-
16. Data: 2010-11-13 22:53:59
Temat: Re: podręcznik do assemblera
Od: Wojciech Muła <w...@p...null.onet.pl.invalid>
On Sat, 13 Nov 2010 13:34:33 -0800 (PST) Mariusz Marszałkowski
<m...@g...com> wrote:
> On 13 Lis, 14:58, "Remek" <d...@g...com> wrote:
> > To rozległy temat.
> Czasami w jakimś programie jakaś procedurę chciałbym napisać w
> asemblerze zamiast w C++ i uzyskać szybszy kod niż wygenerowany
> przez kompilator. Jakie platformy? Te najbardziej wydajne procesory
> AMD i
> Intela.
W tej chwili najważniejsze jest ułożenie danych w pamięci tak,
żeby nietrafienia w cache nie zdominowały czasu wykonywani - a więc
zapewnienie lokalności danych oraz wyrównywanie adresów do granicy
linijki cache.
Pisanie w kodzie maszynowym ma sens tylko, jeśli kompilator sobie nie
daje rady. Już od jakiegoś czasu kompilatory C/C++ bardzo dobrze
optymalizują kod skalarny (czyli ALU/FPU) i to lepiej niż człowiek.
Natomiast z wektoryzacją radzą sobie słabo lub wcale (najczęściej).
w.
-
17. Data: 2010-11-13 23:27:15
Temat: Re: podręcznik do assemblera
Od: Mariusz Marszałkowski <m...@g...com>
On 13 Lis, 23:53, Wojciech Muła
<w...@p...null.onet.pl.invalid> wrote:
> On Sat, 13 Nov 2010 13:34:33 -0800 (PST) Mariusz Marszałkowski
>
> <m...@g...com> wrote:
> > On 13 Lis, 14:58, "Remek" <d...@g...com> wrote:
> > > To rozległy temat.
> > Czasami w jakimś programie jakaś procedurę chciałbym napisać w
> > asemblerze zamiast w C++ i uzyskać szybszy kod niż wygenerowany
> > przez kompilator. Jakie platformy? Te najbardziej wydajne procesory
> > AMD i
> > Intela.
>
> W tej chwili najważniejsze jest ułożenie danych w pamięci tak,
> żeby nietrafienia w cache nie zdominowały czasu wykonywani - a więc
> zapewnienie lokalności danych oraz wyrównywanie adresów do granicy
> linijki cache.
Racja.
> Pisanie w kodzie maszynowym ma sens tylko, jeśli kompilator sobie nie
> daje rady. Już od jakiegoś czasu kompilatory C/C++ bardzo dobrze
> optymalizują kod skalarny (czyli ALU/FPU) i to lepiej niż człowiek.
Przekonałem się o tym wiele lat temu na Pentium I 166MHz i na
kompilatorze MVC++ 6.0. Z nowymi procesorami tak samo dobrze
radzą sobie kompilatory?
> Natomiast z wektoryzacją radzą sobie słabo lub wcale (najczęściej).
Czasami żałuję że nie znam zasad optymalizacji na nowe
procesory, właśnie dlatego że dużo można zyskać dobierając
strukturę danych pod możliwości procesora.
Pozdrawiam
-
18. Data: 2010-11-14 15:43:43
Temat: Re: podręcznik do assemblera
Od: "Remek" <d...@g...com>
Użytkownik "Mariusz Marszałkowski" napisał:
Czasami w jakimś programie jakaś procedurę chciałbym napisać w
asemblerze zamiast w C++ i uzyskać szybszy kod niż wygenerowany
przez kompilator. Jakie platformy? Te najbardziej wydajne procesory
AMD i Intela.
===========================
Obecnie uzyskanie szybszego programu przez napisanie go w asm to w 99% mit.
Kompilatory są tak dopracowane, że prawie nic nie da się poprawić. Asebler
teraz najczęściej służy do pisania jakichś nietypowych procedur, których nie
ma w kompilatorze HL, czy sterowników urządzeń. Warto go jednak poznać, aby
wiedzieć jak to "wszystko" naprawdę działa, bo pisanie Vxd leży poza
możliwościami początkującego. Pod Windows polecam Masm32. Bardzo wygodny i
ma sporo udogodnień podonnych do pierwszych prostych HL.
Remek
-
19. Data: 2010-11-14 16:29:51
Temat: Re: podręcznik do assemblera
Od: A.L. <l...@a...com>
On Sat, 13 Nov 2010 13:34:33 -0800 (PST), Mariusz Marszałkowski
<m...@g...com> wrote:
>On 13 Lis, 14:58, "Remek" <d...@g...com> wrote:
>> To rozległy temat.
>Czasami w jakimś programie jakaś procedurę chciałbym napisać w
>asemblerze zamiast w C++ i uzyskać szybszy kod niż wygenerowany
>przez kompilator. Jakie platformy? Te najbardziej wydajne procesory
>AMD i
>Intela.
>Pozdrawiam
Tak sie robilo za czasow Turbo Pascala 3.0
A.L.
-
20. Data: 2010-11-14 17:27:42
Temat: Off topic statystyczny.
Od: Grzegorz Krukowski <r...@o...pl>
On Sun, 14 Nov 2010 10:29:51 -0600, A.L. <l...@a...com> wrote:
A.L, przepraszam że się wbijam kompletnie bez związku. Możesz polecić
jakąś stronę, gdzie były by informacje historyczne na temat imigracji
do USA? Szczególnie koniec XIX i początek XX wieku, z rozbiciem na
kraje pochodzenia. Wasz odpowiednik urzędu statystycznego coś takiego
udostępnia może?
--
Grzegorz Krukowski