Asembler_Podrecznik_programisty_asempp.pdf

(463 KB) Pobierz
Asembler. Podręcznik programisty
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Asembler. Podrêcznik
SPIS TRECI
programisty
KATALOG KSI¥¯EK
Autor: Vlad Pirogow
T³umaczenie: Wojciech Moch
ISBN: 83-7361-797-3
Format: B5, stron: 640
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
Tajniki tworzenia programów dla systemu Windows w asemblerze
• Poznaj narzêdzia programistyczne
• Napisz programy wykorzystuj¹ce Windows API
• Wykryj i usuñ b³êdy z programów asemblerowych
Pisanie programów w asemblerze przez d³ugi czas kojarzy³o siê z systemem MS-DOS.
Teraz asembler powoli odzyskuje stracon¹ pozycjê jêzyka programowania dla systemu
Windows. Wród wielu zalet asemblera mo¿na wymieniæ: bezporedni dostêp do
procesora, zwarty i niewielki kod wynikowy oraz mo¿liwoci trudne do uzyskania
za pomoc¹ jêzyków wysokiego poziomu. Asembler jest niezbêdny przy tworzeniu
sterowników dla urz¹dzeñ zewnêtrznych, a korzystanie z niego uczy mylenia
algorytmicznego, od którego jêzyki obiektowe stopniowo odzwyczajaj¹ programistów.
Ksi¹¿ka „Asembler. Podrêcznik programisty” to kompendium wiedzy dotycz¹cej pisania
programów dla systemu Windows w jêzyku asemblera. Znajdziesz w niej opisy narzêdzi
programistycznych i sposoby korzystania z procedur Windows API. Nauczysz siê
tworzyæ programy dla Windows — od najprostszych, wykorzystuj¹cych konsolê,
a¿ do skomplikowanych aplikacji z interfejsem graficznym. Dowiesz siê, jak korzystaæ
z narzêdzi do wykrywania i usuwania b³êdów, a tak¿e poznasz zasady stosowania
asemblera w po³¹czeniu z jêzykami wysokiego poziomu.
• Narzêdzia programistyczne dla systemu Windows
• Wywo³ywanie funkcji Windows API
• Programy dzia³aj¹ce w trybie tekstowym
• Tworzenie i wykorzystywanie zasobów
• Praca z systemem plików
• Tworzenie bibliotek DLL
• Programowanie sieciowe
• Wykorzystywanie asemblera w jêzykach wysokiego poziomu
• Turbo Debugger
• Tworzenie sterowników
Odkryj nieznane obszary programowania -- poznaj jêzyk asemblera
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
430717374.001.png 430717374.002.png 430717374.003.png 430717374.004.png
Spis treci
Wstp .............................................................................................. 9
Cz I Podstawy programowania 32-bitowego
w systemach Windows ..................................................13
Rozdział 1. Narzdzia programistyczne dla systemu Windows ............................ 15
Pierwszy program w asemblerze i jego przekształcenia ................................................. 15
Moduły obiektowe .......................................................................................................... 20
Dyrektywa INVOKE ...................................................................................................... 22
Dane w module obiektowym .......................................................................................... 24
Asemblacja programem TASM ...................................................................................... 25
Uproszczony tryb segmentacji ........................................................................................ 26
Inne narz,dzia u-ywane do pracy z asemblerem ............................................................ 27
Edytory ..................................................................................................................... 28
Programy uruchomieniowe ...................................................................................... 28
Deasemblery ............................................................................................................. 29
Edytory szesnastkowe .............................................................................................. 31
Kompilatory zasobów .............................................................................................. 31
Edytory zasobów ...................................................................................................... 31
Rozdział 2. Podstawy programowania w systemie Windows ............................... 33
Wywoływanie funkcji API ............................................................................................. 34
Struktura programu ......................................................................................................... 37
Rejestracja klasy okna .............................................................................................. 37
Tworzenie okna ........................................................................................................ 37
P,tla obsługi komunikatów ...................................................................................... 37
Procedura okna głównego ........................................................................................ 38
Przykłady prostych programów okienkowych ................................................................ 39
Jak to zrobi8 w asemblerze TASM32? ........................................................................... 45
Przekazywanie parametrów poprzez stos ....................................................................... 49
Rozdział 3. Proste programy w jzyku asemblera ............................................... 53
Zasady budowania aplikacji w systemie Windows ......................................................... 53
Okno z przyciskiem ........................................................................................................ 55
Okno z polem edycyjnym ............................................................................................... 59
Okno z list; .................................................................................................................... 65
Okna potomne i okna posiadane ..................................................................................... 72
4
Asembler. Podrcznik programisty
Rozdział 4. Przegl$d programowania 16-bitowego .............................................. 81
Zasady programowania 16-bitowego w systemie Windows ........................................... 81
Przykład aplikacji 16-bitowej ................................................................................... 83
Rozdział 5. Asemblery MASM i TASM ............................................................... 89
Opcje wiersza polece= asemblerów ml.exe i tasm32.exe ............................................... 89
Opcje wiersza polece= konsolidatorów link.exe i tlink32.exe ........................................ 92
Doł;czanie do plików wykonywalnych informacji dla programu uruchomieniowego ... 97
Tworzenie aplikacji konsolowych i aplikacji z interfejsem GUI .................................... 99
Konsolidacja automatyczna ............................................................................................ 99
Programy same tłumacz;ce si, na kod wynikowy ................................................... 99
Cz II Programowanie w systemie Windows ...........................101
Rozdział 6. Kodowanie tekstu w systemie Windows ........................................ 103
Kodowanie informacji tekstowych ............................................................................... 103
OEM i ANSI ................................................................................................................ 104
Unikod .......................................................................................................................... 105
Rozdział 7. Przykłady prostych programów ...................................................... 109
Wypisywanie tekstu w oknie ........................................................................................ 109
Wybieranie czcionki ..................................................................................................... 122
Grafika .......................................................................................................................... 128
Rozdział 8. Aplikacje konsolowe ..................................................................... 139
Tworzenie konsoli ........................................................................................................ 143
Przetwarzanie zdarze= klawiatury i myszy ................................................................... 147
Czasomierz w aplikacji konsolowej ............................................................................. 154
Rozdział 9. Idea zasobów — edytory i kompilatory zasobów ............................. 161
J,zyk opisu zasobów .................................................................................................... 161
Ikony ...................................................................................................................... 162
Kursory .................................................................................................................. 164
Bitmapy .................................................................................................................. 165
Ci;gi znaków .......................................................................................................... 165
Dialogi ................................................................................................................... 165
Menu ...................................................................................................................... 170
Klawisze skrótów ................................................................................................... 175
Niemodalne okna dialogowe ........................................................................................ 177
Kompilowanie zasobów i konsolidowanie plików obiektowych
w pakiecie TASM32 ............................................................................................ 182
Rozdział 10. Przykłady programów korzystaj$cych z zasobów ............................. 185
Dynamiczne menu ........................................................................................................ 185
Klawisze szybkiego dost,pu ......................................................................................... 195
Zarz;dzanie listami ....................................................................................................... 201
Programowanie w stylu Windows XP .......................................................................... 207
Rozdział 11. Praca z plikami ............................................................................. 213
Charakterystyki plików ................................................................................................ 213
Atrybuty plików ..................................................................................................... 214
System plików FAT32 .................................................................................................. 217
System plików NTFS ................................................................................................... 220
Katalogi w systemie plików NTFS ......................................................................... 223
Kompresja plików w systemie NTFS ..................................................................... 224
Spis treci
5
Punkty doł;czania .................................................................................................. 224
Wyszukiwanie plików ............................................................................................ 225
Asemblacja programu za pomoc; asemblera TASM ............................................. 240
Techniki pracy z plikami binarnymi ............................................................................. 240
Jak pobra8 atrybuty pliku? ..................................................................................... 251
Cz III Bardziej skomplikowane przykłady programów
dla systemu Windows ..................................................255
Rozdział 12. Dyrektywy i makroinstrukcje jzyka asemblera .............................. 257
Etykiety ........................................................................................................................ 257
Struktury ....................................................................................................................... 259
Unie .............................................................................................................................. 260
Wygodna metoda pracy ze strukturami ........................................................................ 260
Asemblacja warunkowa ................................................................................................ 261
Wywołania procedur .................................................................................................... 262
Makroinstrukcje powtórze= .......................................................................................... 263
Makroinstrukcja definiowana ....................................................................................... 264
Kilka innych dyrektyw i operatorów asemblera ........................................................... 266
Konstrukcje typu HLL .................................................................................................. 267
Konstrukcje warunkowe ......................................................................................... 267
P,tla WHILE .......................................................................................................... 268
Tworzenie programów asemblowanych zarówno przez asembler MASM,
jak i asembler TASM ................................................................................................. 269
Rozdział 13. Wicej o zarz$dzaniu plikami ......................................................... 271
Dokładny opis funkcji CreateFile ................................................................................. 271
Inne mo-liwoGci funkcji CreateFile .............................................................................. 275
Skrytki pocztowe .................................................................................................... 276
Potoki ..................................................................................................................... 281
Nap,dy dyskowe .................................................................................................... 282
Przegl;d funkcji API zajmuj;cych si, zarz;dzaniem plikami ...................................... 286
Asynchroniczne wejGcie i wyjGcie ................................................................................ 287
Rozdział 14. Przykłady programów korzystaj$cych z czasomierza ....................... 293
Najprostszy przykład u-ycia czasomierza .................................................................... 295
Interakcja mi,dzy czasomierzami ................................................................................. 299
Okna dymków pomocy ................................................................................................. 305
Rozdział 15. Wielozadaniowo45 ........................................................................ 317
Tworzenie procesu ....................................................................................................... 317
W;tki ............................................................................................................................ 327
Komunikacja mi,dzy w;tkami ..................................................................................... 333
Semafory ...................................................................................................................... 334
Zdarzenia ...................................................................................................................... 336
Sekcje krytyczne .......................................................................................................... 336
Wzajemne wykluczenie ................................................................................................ 346
Rozdział 16. Tworzenie bibliotek dynamicznych (DLL) ........................................ 347
Koncepcje ogólne ......................................................................................................... 347
Tworzenie biblioteki dynamicznej ............................................................................... 349
Konsolidacja niejawna ................................................................................................. 354
Korzystanie ze wspólnej przestrzeni adresowej ........................................................... 356
Współdzielenie pami,ci przez kilka procesów ............................................................. 364
6
Asembler. Podrcznik programisty
Rozdział 17. Programowanie sieciowe ............................................................... 369
Urz;dzenia sieciowe ..................................................................................................... 369
Wyszukiwanie i podł;czanie dysków sieciowych ........................................................ 374
Słowo o protokołach sieciowych TCP/IP ..................................................................... 387
Model OSI .............................................................................................................. 387
Rodzina protokołów TCP/IP .................................................................................. 387
Adresowanie w protokole IP .................................................................................. 389
Maski adresów ....................................................................................................... 391
Adresy fizyczne i adresy protokołu IP ................................................................... 391
Usługa systemu nazw domen ................................................................................. 391
Automatyczne przypisywanie adresów protokołu IP ............................................. 392
Routing ................................................................................................................... 392
Zarz;dzanie gniazdami ................................................................................................. 393
Przykład aplikacji najprostszego serwera i klienta ....................................................... 397
Rozdział 18. Rozwi$zywanie problemów zwi$zanych z programowaniem
w systemie Windows .................................................................... 411
Umieszczanie ikony na tacce systemowej .................................................................... 411
Przetwarzanie plików ................................................................................................... 417
Kontrolowanie danych w polu edycyjnym ................................................................... 419
Wymiana danych pomi,dzy aplikacjami ...................................................................... 427
Zabezpieczenie przed wielokrotnym uruchomieniem aplikacji .................................... 433
Operacje na grupach plików i katalogów ..................................................................... 434
Drukowanie .................................................................................................................. 436
Korzystanie z listy zada= .............................................................................................. 436
Cz IV Debugowanie, analiza kodu
i przygotowywanie sterowników ...................................443
Rozdział 19. Programowanie systemowe ........................................................... 445
Adresowanie stron i segmentów ................................................................................... 445
Przestrze= adresowa procesu ........................................................................................ 450
Zarz;dzanie pami,ci; ................................................................................................... 452
Haki .............................................................................................................................. 458
Rozdział 20. Wykorzystywanie asemblera w jzykach wysokiego poziomu .......... 467
Koordynacja wywoła= .................................................................................................. 467
Koordynacja nazw ........................................................................................................ 468
Koordynacja parametrów ............................................................................................. 469
Prosty przykład wykorzystania asemblera w j,zykach wysokiego poziomu ................ 470
Borland C++ 5.0 ..................................................................................................... 470
Visual C++ 7.0 ....................................................................................................... 471
Delphi 7.0 ............................................................................................................... 473
Przekazywanie parametrów przez rejestry .................................................................... 474
Wywołania funkcji API i zasoby w modułach asemblera ............................................ 475
Poł;czenie j,zyka C z kodem asemblerowym .............................................................. 480
Asembler wbudowany .................................................................................................. 486
Przykład wykorzystania biblioteki dynamicznej .......................................................... 488
Rozdział 21. Programowanie usług .................................................................... 493
Podstawowe koncepcje i funkcje kontrolne .................................................................. 493
Struktura usługi ............................................................................................................ 495
Przykładowa usługa ...................................................................................................... 501
Zgłoś jeśli naruszono regulamin