Opis książki: - Dowiedz się, jak zbudowany jest i jak działa procesor
- Poznaj język Asembler i narzędzia umożliwiające tworzenie w nim programów
- Naucz się pisać wydajny kod działający w systemach DOS i Windows
Poznaj Asemblera i dołącz do elity programistów!
"Asembler" to słowo wywołujące przerażenie u laików i dreszcz emocji u specjalistów. Osoby znające ten język są uważane za elitę wśród profesjonalnych programistów. Nic dziwnego - w końcu nikt lepiej niż oni nie zna podstaw działania współczesnych procesorów i technik umożliwiających tworzenie bardzo wydajnych programów komputerowych. Jednak czy wiedza o Asemblerze naprawdę jest tajemna, dostępna tylko nielicznym? Czy język ten jest aż tak trudny do opanowania? Wcale nie!
Przekonaj się o tym, sięgając po książkę "Asembler. Leksykon". Przystępnie i rzeczowo wyjaśni Ci ona sposób działania procesorów zgodnych z architekturą x86, przedstawi strukturę 16-bitowych programów dla środowiska DOS i 32-bitowych programów dla systemów operacyjnych Windows, a także poszerzy Twoją wiedzę o informacje dotyczące Asemblera dla architektury 64-bitowej. Dzięki niej poznasz instrukcje języka, najważniejsze techniki programistyczne, sposoby używania elementów interfejsu użytkownika oraz narzędzia niezbędne w pracy programisty.
- Podstawowe pojęcia związane z Asemblerem i przydatne narzędzia
- Wiadomości na temat architektury x86 i korzystania z rejestrów procesora
- Budowa 16-bitowych programów DOS i 32-bitowych programów Windows
- Korzystanie z makroinstrukcji oraz różnych typów danych
- Tworzenie programów w systemie Windows i używanie kontrolek UI
Naucz się wydajnie programować w Asemblerze!
1. Podstawowe informacje (7)
- 1.1. Słowem wstępu (7)
- 1.2. Architektura x86 - podstawowe informacje (10)
- 1.3. Budowa programu dla podsystemu DOS (16-bitowego) (13)
- 1.4. Budowa programu dla systemu Windows (32-bitowego) (15)
2. Podstawowe instrukcje procesora (18)
- 2.1. Instrukcja kopiowania i instrukcje arytmetyczne (18)
- 2.2. Instrukcje logiczne i przesunięć bitowych (20)
- 2.3. Instrukcje wywołania procedury i powrotu (26)
- 2.4. Instrukcja porównania i instrukcje skoku (29)
- 2.5. Instrukcje do operacji na łańcuchach znaków (30)
3. Makroinstrukcje (35)
- 3.1. Makroinstrukcje kontroli przepływu (35)
- 3.2. Makroinstrukcje do tworzenia pętli (36)
4. Praca z danymi (39)
- 4.1. Adresowanie i wskaźniki (39)
- 4.2. Zmienne i stałe (41)
- 4.3. Praca ze strukturami (42)
5. Programowanie w systemie Windows (45)
- 5.1. Konsola w systemie Windows (45)
- 5.2. Proste okno dialogowe (47)
- 5.3. Odczyt myszki i klawiatury (51)
- 5.4. Operacje na plikach i alokacja bloków pamięci (52)
- 5.5. Tworzenie menu (55)
- 5.6. Kontrolka przycisku (Button) (56)
- 5.7. Kontrolka pola tekstowego (Edit) (57)
- 5.8. Kontrolka wielokrotnego wyboru (CheckBox) (60)
- 5.9. Kontrolka pojedynczego wyboru (RadioButton) (62)
- 5.10. Kontrolka listy rozwijanej (ComboBox) (62)
- 5.11. Kontrolka listy (ListBox) (64)
- 5.12. Kontrolka paska postępu (ProgressBar) (65)
- 5.13. Kontrolka widoku drzewa (TreeView) (66)
- 5.14. Kontrolka widoku listy (ListView) (68)
- 5.15. Kontrolka suwaka (TrackBar) (70)
- 5.16. Kontrolka podpowiedzi (Tooltip) (71)
- 5.17. Kontrolka do wprowadzania adresu IP (IPAddress) (78)
- 5.18. Kontrolka tekstu o bogatym formatowaniu (RichEdit) (83)
- 5.19. Kontrolki w nowym stylu (pliki .manifest) (85)
- 5.20. Podpięcia do systemu Windows (Hooks) (87)
- 5.21. Ekran powitalny (Splashscreen) (89)
- 5.22. Ikona w zasobniku systemowym (Tray) (91)
- 5.23. Podmiana procedury obsługi okna (93)
- 5.24. Programowanie aplikacji wielowątkowych (95)
- 5.25. Tworzenie bibliotek DLL (97)
- 5.26. Pliki odwzorowane w pamięci (99)
- 5.27. Pobieranie adresu IP lokalnego komputera (99)
6. Dodatkowe zestawy instrukcji (102)
- 6.1. Korzystanie z instrukcji koprocesora (FPU) (102)
- 6.2. Korzystanie z rozszerzeń MMX i SSE (110)
- 6.3. Nowe rozszerzenie - Advanced Vector Extensions (AVX) (118)
7. Asembler 64-bitowy (x86-64) (120)
- 7.1. Wstęp do Asemblera dla architektury 64-bitowej (120)
8. Opis rozkazów procesorów z rodziny 80x86 (125)
- 8.1. Instrukcje na literę A (125)
- 8.2. Instrukcje na literę B (128)
- 8.3. Instrukcje na literę C (132)
- 8.4. Instrukcje na literę D (137)
- 8.5. Instrukcje na literę E (139)
- 8.6. Instrukcje na literę H (139)
- 8.7. Instrukcje na literę I (140)
- 8.8. Instrukcje na literę J (143)
- 8.9. Instrukcje na literę L (144)
- 8.10. Instrukcje na literę M (148)
- 8.11. Instrukcje na literę N (151)
- 8.12. Instrukcje na literę O (152)
- 8.13. Instrukcje na literę P (154)
- 8.14. Instrukcje na literę R (156)
- 8.15. Instrukcje na literę S (160)
- 8.16. Instrukcje na literę T (168)
- 8.17. Instrukcje na literę V (169)
- 8.18. Instrukcje na literę W (169)
- 8.19. Instrukcje na literę X (170)
9. Dyrektywy asemblera MASM (172)
- 9.1. Etykiety kodu (172)
- 9.2. Warunkowa kontrola przepływu (173)
- 9.3. Alokacja danych (175)
- 9.4. Przyrównania (177)
- 9.5. Makra (177)
- 9.6. Procedury (178)
- 9.7. Rodzaj zestawu instrukcji procesora (179)
- 9.8. Bloki powtórzeń (182)
- 9.9. Zakres (183)
- 9.10. Segmenty (184)
- 9.11. Uproszczone segmenty (185)
- 9.12. Łańcuchy znaków (187)
- 9.13. Struktury i rekordy (188)
- 9.14. Różne (189)
Dodatki (192) A. Tablica kodów ASCII (192) B. Potęgi liczby dwa (193) C. Lista opkodów procesora 80x86 (196) Skorowidz (202)
|