Asembler. Podręcznik programisty - Helion
Tytuł oryginału: The Assembly Programming Master Book
Tłumaczenie: Wojciech Moch
ISBN: 83-7361-797-3
stron: 640, Format: B5, okładka: miękka
Data wydania: 2005-06-20
Księgarnia: Helion
Cena książki: 77,35 zł (poprzednio: 119,00 zł)
Oszczędzasz: 35% (-41,65 zł)
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. Wśród wielu zalet asemblera można wymienić: bezpośredni dostęp do procesora, zwarty i niewielki kod wynikowy oraz możliwości 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 myślenia 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
Osoby które kupowały "Asembler. Podręcznik programisty", wybierały także:
- Programowanie w asemblerze x64. Od nowicjusza do znawcy AVX 77,00 zł, (38,50 zł -50%)
- Programowanie w asemblerze x64. Od nowicjusza do znawcy AVX 77,00 zł, (46,20 zł -40%)
- Asembler. Programowanie 44,89 zł, (33,67 zł -25%)
- Asembler dla procesorów ARM. Podręcznik programisty 59,00 zł, (44,25 zł -25%)
- Asembler. Leksykon kieszonkowy 29,00 zł, (21,75 zł -25%)
Spis treści
Asembler. Podręcznik programisty -- spis treści
Wstęp (9)
Część I Podstawy programowania 32-bitowego w systemach Windows (13)
Rozdział 1. Narzędzia 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 zrobić w asemblerze TASM32? (45)
- Przekazywanie parametrów poprzez stos (49)
Rozdział 3. Proste programy w języku 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)
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)
- Punkty dołączania (224)
- Wyszukiwanie plików (225)
- Asemblacja programu za pomocą asemblera TASM (240)
- Techniki pracy z plikami binarnymi (240)
- Jak pobrać atrybuty pliku? (251)
Część III Bardziej skomplikowane przykłady programów dla systemu Windows (255)
Rozdział 12. Dyrektywy i makroinstrukcje języka 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. Więcej o zarządzaniu plikami (271)
- Dokładny opis funkcji CreateFile (271)
- Inne możliwości funkcji CreateFile (275)
- Skrytki pocztowe (276)
- Potoki (281)
- Napędy dyskowe (282)
- Przegląd funkcji API zajmujących się zarządzaniem plikami (286)
- Asynchroniczne wejście i wyjście (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. Wielozadaniowość (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)
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 językach 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)
Rozdział 22. Programy uruchomieniowe i deasemblery (515)
- Narzędzia firmy Microsoft (515)
- editbin.exe (515)
- dumpbin.exe (517)
- Narzędzia innych producentów (519)
- dumppe.exe (519)
- hiew.exe (519)
- dewin.exe (522)
- IDA Pro (522)
Rozdział 23. Wprowadzenie do programu Turbo Debugger (525)
- Debugowanie programów napisanych w językach wysokiego poziomu (529)
- Technika debugowania (531)
Rozdział 24. Praca z deasemblerem W32Dasm i programem uruchomieniowym SoftIce (533)
- Program uruchomieniowy W32Dasm (533)
- Rozpoczęcie pracy (533)
- Nawigowanie po deasemblowanym kodzie (535)
- Wyświetlanie danych (536)
- Wypisywanie importowanych i eksportowanych funkcji (536)
- Wyświetlanie zasobów (537)
- Operacje na tekstach (537)
- Ładowanie programów do debugowania (538)
- Praca z bibliotekami dynamicznymi (539)
- Punkty wstrzymania (539)
- Modyfikowanie kodu, danych i rejestrów (540)
- Dodatkowe możliwości pracy z funkcjami API (541)
- Wyszukiwanie w programie potrzebnych lokalizacji (541)
- Debuger SoftIce (542)
- Instalacja (543)
- Ładowanie programu do debugowania (543)
- Przegląd poleceń programu uruchomieniowego (544)
Rozdział 25. Podstawy analizy kodu (549)
- Zmienne i stałe (549)
- Struktury sterujące języka C (553)
- Konstrukcje warunkowe (553)
- Zagnieżdżone konstrukcje warunkowe (554)
- Operator Switch (555)
- Pętle (556)
- Zmienne lokalne (557)
- Funkcje i procedury (559)
- Optymalizacja kodu (560)
- Prędkość albo rozmiar (562)
- Optymalizowanie skoków warunkowych (563)
- Optymalizowanie wywołań procedur (563)
- Programowanie zorientowane obiektowo (564)
Rozdział 26. Korygowanie modułów wykonywalnych (569)
- Praktyczny przykład korygowania modułu wykonywalnego (569)
- Wyszukiwanie procedury okna (572)
Rozdział 27. Struktura sterowników i ich tworzenie (575)
- Wirtualne sterowniki urządzeń (575)
- Opis projektu (577)
- Prosty sterownik (581)
- Dynamiczne sterowniki wirtualne (583)
- Podstawowe pojęcia sterowników trybu jądra (589)
- Jądro systemu operacyjnego i struktura pamięci (590)
- Kontrolowanie sterowników (591)
- Przykład prostego sterownika trybu jądra (592)
- Sterowniki i urządzenia trybu jądra (605)
Dodatki (615)
Bibliografia (617)
Skorowidz (619)