Praktyczny kurs asemblera.pdf

(682 KB) Pobierz
C:\Andrzej\PDF\ABC nagrywania p³yt CD\1 strona.cdr
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Praktyczny kurs
SPIS TRECI
asemblera
KATALOG KSI¥¯EK
Autor: Eugeniusz Wróbel
ISBN: 83-7361-433-8
Format: B5, stron: 384
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Wejd w wiat programowania w jêzyku asemblera
• Dowiedz siê, kiedy u¿ycie asemblera jest niezbêdne
• Poznaj zasady programowania w asemblerze
• Napisz szybkie i wydajne programy dla DOS-a i Windows
• Zdob¹d wiedzê o zasadach dzia³ania procesora i pamiêci
Uwa¿asz, ¿e mo¿liwoci jêzyków programowania wysokiego poziomu nie pozwalaj¹
na napisanie programu, którego potrzebujesz? Chcesz stworzyæ sterownik, program
rezydentny, demo lub... wirusa? Interesuje Ciê, co dzieje siê w komputerze podczas
wykonywania programu?
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
Wykorzystaj potencja³ asemblera!
Programowanie w jêzyku niskiego poziomu daje niemal nieograniczon¹ kontrolê
nad sprzêtem i dzia³aniem aplikacji. Programy napisane w jêzyku asemblera dzia³aj¹
szybko, s¹ niewielkie i zajmuj¹ ma³o pamiêci. S¹ bardzo wydajne i otwieraj¹ dostêp
do takich obszarów komputera, do których dostêp z poziomu C++ czy Visual Basica
jest niemo¿liwy.
Ksi¹¿ka „Praktyczny kurs asemblera” wprowadzi Ciê w wiat programowania
w tym jêzyku. Dowiesz siê, jak dzia³a procesor, w jaki sposób komunikuje siê
z pamiêci¹ i pozosta³ymi elementami komputera. Poznasz typy rozkazów procesora,
tryby adresowania i zasady tworzenia programów w asemblerze. Lepiej poznasz swój
komputer i dowiesz siê, w jaki sposób zapamiêtuje i przetwarza dane. Komputer
przestanie byæ dla Ciebie „czarn¹ skrzynk¹” wykonuj¹c¹ w czarodziejski sposób
Twoje polecenia.
• Podstawowe wiadomoci o architekturze procesorów Intel
• Organizacja pamiêci i tryby adresowania
• Omówienie listy rozkazów procesora
• Narzêdzia do tworzenia programów w jêzyku asemblera
• Struktura programu w asemblerze
• Definiowanie zmiennych
• Tworzenie podprogramów i makrorozkazów
• Wykorzystanie funkcji BIOS-a oraz MS-DOS
• Programy w asemblerze uruchamiane w systemie Windows
• Optymalizacja kodu
• Tworzenie modu³ów dla innych jêzyków programowania
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
815249.001.png 815249.002.png 815249.003.png
Spis treci
Rozdział 1. Wprowadzenie ...................................................................................7
1.1. Co to jest asembler? .....................................................................................................7
1.2. Dlaczego programowa w jzyku asemblera? ...........................................................10
1.3. Dlaczego warto pozna jzyk asemblera?..................................................................12
1.4. Wymagane umiejtno#ci ............................................................................................12
1.5. Konwencje stosowane w ksi&'ce ...............................................................................13
Rozdział 2. Zaczynamy typowo — wiedzc niewiele,
uruchamiamy nasz pierwszy program................................................17
2.1. „Hello, world!” pod systemem operacyjnym MS DOS.............................................18
2.2. „Hello, world!” pod systemem operacyjnym Windows.............................................22
Rozdział 3. Wracamy do podstaw — poznajemy minimum wiedzy
na temat architektury procesorów 80x86.........................................29
3.1. Rejestry procesora 8086.............................................................................................30
3.2. Zwikszamy rozmiar rejestrów — od procesora 80386 do Pentium 4......................33
3.3. Zwikszamy liczb rejestrów — od procesora 80486 do Pentium 4.........................35
3.4. Segmentowa organizacja pamici..............................................................................39
3.5. Adresowanie argumentów..........................................................................................43
3.6. Adresowanie argumentów w pamici operacyjnej.....................................................44
Rozdział 4. Poznajemy narz+dzia........................................................................47
4.1. Asembler MASM.......................................................................................................49
4.2. Program konsoliduj&cy — linker ...............................................................................52
4.3. Programy uruchomieniowe ........................................................................................54
4.4. Wszystkie potrzebne narzdzia razem, czyli #rodowiska zintegrowane....................62
Rozdział 5. Nadmiar mo.liwo/ci, z którym trudno sobie poradzi1
— czyli lista instrukcji procesora......................................................67
5.1. Instrukcje ogólne — jednostki stałoprzecinkowej .....................................................70
5.2. Koprocesor arytmetyczny — instrukcje jednostki zmiennoprzecinkowej.................73
5.3. Instrukcje rozszerzenia MMX....................................................................................75
5.4. Instrukcje rozszerzenia SSE.......................................................................................78
5.5. Instrukcje rozszerzenia SSE2.....................................................................................82
5.6. Instrukcje rozszerzenia SSE3.....................................................................................85
5.7. Instrukcje systemowe.................................................................................................85
4
Praktyczny kurs asemblera
Rozdział 6. Wracamy do ogólnej struktury programu asemblerowego ..................87
6.1. Uproszczone dyrektywy definiuj&ce segmenty..........................................................87
6.2. Pełne dyrektywy definiowania segmentów................................................................92
6.3. Spróbujmy drobn& cz# tej wiedzy zastosowa w prostym programie,
a przy okazji poznajmy nowe pomocnicze dyrektywy...................................................96
Rozdział 7. Wa.na rzecz w ka.dym j+zyku programowania
— definiowanie i stosowanie zmiennych.........................................105
7.1. Zmienne całkowite...................................................................................................106
7.2. Zmienne zmiennoprzecinkowe ................................................................................109
7.3. Definiowanie tablic i łaAcuchów..............................................................................110
7.4. Struktury zmiennych ................................................................................................114
7.5. Dyrektywa definiuj&ca pola bitowe..........................................................................117
Rozdział 8. Podprogramy .................................................................................119
8.1. Stos...........................................................................................................................119
8.2. Wywołanie i organizacja prostych podprogramów..................................................122
8.3. Poznajemy dyrektyw PROC-ENDP.......................................................................123
8.4. Parametry wywołania podprogramu ........................................................................128
8.5. Zmienne lokalne.......................................................................................................137
Rozdział 9. Oddalamy si+ od asemblera w kierunku j+zyków wy.szego poziomu,
czyli u.ycie makroinstrukcji oraz dyrektyw asemblacji warunkowej.... 139
9.1. Makroinstrukcja definiowana...................................................................................139
9.2. Dyrektywa LOCAL..................................................................................................144
9.3. Dyrektywy asemblacji warunkowej.........................................................................144
9.4. Makroinstrukcje niedefiniowane..............................................................................148
9.5. Makroinstrukcje tekstowe ........................................................................................149
9.6. Makroinstrukcje operuj&ce na łaAcuchach (na tekstach)..........................................150
Rozdział 10. Czy obsług+ wszystkich urzdze5 komputera musimy wykona1 sami?
Funkcje systemu MS DOS oraz BIOS ..............................................153
10.1. Co ma prawo przerwa wykonanie naszego programu?........................................154
10.2. Obsługa klawiatury oraz funkcje grafiki na poziomie BIOS.................................156
10.3. Wywoływanie podprogramów systemu operacyjnego MS DOS...........................163
Rozdział 11. Obalamy mity programujc w asemblerze
pod systemem operacyjnym Windows.............................................169
11.1. Systemowe programy biblioteczne ........................................................................170
11.2. Najprawdziwsze pierwsze okno.............................................................................173
11.3. Struktury programowe HLL — to te' jest asembler!.............................................178
11.4. Idziemy jeden krok dalej i wykorzystujemy program generatora okien Prostart......180
Rozdział 12. Czy mo.emy przy/pieszy1 działanie naszego programu?
Wybrane zagadnienia optymalizacji programu..................................189
12.1. Kiedy i co w programie powinni#my optymalizowa?..........................................191
12.2. Optymalizujemy program przygotowany dla procesora Pentium 4.......................193
12.3. Wspieramy proces optymalizacji programem Vtune.............................................200
12.4. Na ile ró'nych sposobów mo'emy zakodowa kopiowanie tablic?........................201
Rozdział 13. Dzielimy program na moduły i łczymy moduły zakodowane
w ró.nych j+zykach programowania................................................209
13.1. Jak realizowa poł&czenia midzymodułowe?.......................................................210
13.2. Mieszamy moduły przygotowane w ró'nych jzykach .........................................214
Spis treci
5
Rozdział 14. Przykładowe programy (MS DOS) ...................................................219
14.1. Identyfikujemy procesor ........................................................................................219
14.2. Wchodzimy w #wiat grafiki — nieco patriotycznie...............................................225
14.3. Program rezydentny, czyli namiastka wielozadaniowo#ci.....................................228
14.4. Pozorujemy głbi..................................................................................................233
14.5. Wy'sza graficzna szkoła jazdy ze zmiennymi zespolonymi .................................236
Rozdział 15. Przykładowe programy (Windows)..................................................243
15.1. Zegarek...................................................................................................................243
15.2. Dotknicie grafiki przez du'e „G”.........................................................................248
15.3. Przekształcamy map bitow& .................................................................................250
Załcznik 1.Interesujce strony w internecie ....................................................271
Załcznik 2.Lista dyrektyw i pseudoinstrukcji j+zyka MASM..............................275
Z2.1. Dyrektywy okre#laj&ce list instrukcji procesora..................................................275
Z2.2. Organizacja segmentów.........................................................................................277
Z2.3. Definiowanie stałych oraz dyrektywy zwi&zane z nazwami symbolicznymi........279
Z2.4. Definiowanie zmiennych.......................................................................................280
Z2.4. Dyrektywy asemblacji warunkowej.......................................................................282
Z2.5. Makroinstrukcje i dyrektywy nimi zwi&zane.........................................................283
Z2.6. Pseudoinstrukcje typu HLL ...................................................................................285
Z2.7. Dyrektywy zwi&zane z podprogramami ................................................................286
Z2.8. Dyrektywy wpływaj&ce na kształt listingu asemblacji..........................................287
Z2.9. Poł&czenia midzymodułowe ................................................................................289
Z2.10. Dyrektywy zwi&zane z diagnostyk& procesu asemblacji.....................................290
Z2.11. Inne dyrektywy i pseudoinstrukcje......................................................................291
Załcznik 3.Operatory stosowane w j+zyku MASM............................................293
Z3.1. Operatory stosowane w wyra'eniach obliczanych w czasie asemblacji ...............293
Z3.2. Operatory stosowane w wyra'eniach obliczanych
w czasie wykonywania programu.................................................................................297
Załcznik 4.Symbole predefiniowane.................................................................299
Załcznik 5.Przegld instrukcji procesora Pentium 4.........................................303
Z5.1. Instrukcje ogólne (jednostki stałoprzecinkowej)...................................................303
Z5.2. Instrukcje jednostki zmiennoprzecinkowej (koprocesora arytmetycznego)..........309
Z5.3. Instrukcje rozszerzenia MMX ...............................................................................313
Z5.4. Instrukcje rozszerzenia SSE...................................................................................315
Z5.5. Instrukcje rozszerzenia SSE2.................................................................................319
Z5.6. Instrukcje rozszerzenia SSE3.................................................................................323
Z5.7. Instrukcje systemowe.............................................................................................325
Załcznik 6.Opis wybranych przerwa5 systemu BIOS.........................................327
Z6.1. Funkcje obsługi klawiatury wywoływane przerwaniem programowym INT 16h...327
Z6.2. Funkcje obsługi karty graficznej wywoływane
przerwaniem programowym INT 10h. .........................................................................329
Załcznik 7.Wywołania funkcji systemu operacyjnego MS DOS..........................335
Z7.1. Funkcje realizuj&ce odczyt lub zapis znaku z układu wej#ciowego
lub wyj#ciowego...........................................................................................................335
Z7.2. Funkcje operuj&ce na katalogach...........................................................................337
Z7.3. Operacje na dysku..................................................................................................337
Z7.4. Operacje na plikach (zbiorach) dyskowych...........................................................339
Z7.5. Operacje na rekordach w pliku..............................................................................341
6
Praktyczny kurs asemblera
Z7.6. Zarz&dzanie pamici& operacyjn&..........................................................................342
Z7.7. Funkcje systemowe................................................................................................342
Z7.8. Sterowanie programem..........................................................................................344
Z7.9. Funkcje zwi&zane z czasem i dat&...........................................................................345
Z7.10 Inne funkcje ..........................................................................................................345
Załcznik 8.Opis wybranych funkcji API............................................................347
Z8.1. CheckDlgButtom ...................................................................................................347
Z8.2. CloseHandle...........................................................................................................348
Z8.3 CopyFile..................................................................................................................349
Z8.4. CreateFile...............................................................................................................350
Z8.5. CreateWindowEx...................................................................................................352
Z8.6. DeleteFile...............................................................................................................355
Z8.7. ExitProcess.............................................................................................................355
Z8.8. GetFileSize.............................................................................................................356
Z8.9. MessageBox...........................................................................................................357
Z8.10. ShowWindow.......................................................................................................359
Załcznik 9.Tablica kodów ASCII oraz kody klawiszy.........................................361
Z9.1. Kody ASCII...........................................................................................................361
Z9.2. Kody klawiszy .......................................................................................................361
Załcznik 10. Program Segment Prefix (PSP)....................................................367
Załcznik 11. Płyta CD załczona do ksi.ki .....................................................369
Skorowidz ........................................................................................................371
Zgłoś jeśli naruszono regulamin