Win32ASM_Asembler_w_Windows_asmwin.pdf

(525 KB) Pobierz
C:\Andrzej\PDF\ABC nagrywania p³yt CD\1 strona.cdr
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Win32ASM.
SPIS TRECI
Asembler w Windows
KATALOG KSI¥¯EK
Autor: Adam B³aszczyk
ISBN: 83-7361-022-7
Format: B5, stron: 360
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Przekonanie, ¿e programowanie w asemblerze odesz³o w przesz³oæ wraz z opartymi
na interfejsie tekstowym systemami w rodzaju DOS i upowszechnieniem siê
wysokopoziomowych jêzyków programowania takich jak Visual Basic, C++ czy Java,
jest b³êdne. Ca³kiem spora grupa osób nadal u¿ywa asemblera w rodowisku Windows.
Jeli chcesz do nich do³¹czyæ, znalaz³e w³aciw¹ ksi¹¿kê.
Asembler daje programicie poczucie ogromnej wolnoci i pe³nego panowania nad
sprzêtem. Dziêki tej ksi¹¿ce nauczysz siê programowaæ w tym jêzyku, poznasz równie¿
ca³y zestaw aplikacji, które programowanie to u³atwi¹. W tekcie ksi¹¿ki znajdziesz
wiele przyk³adów kodu ilustruj¹cych najwa¿niejsze omawiane zagadnienia.
Ksi¹¿ka przedstawia:
• Podstawowe informacje zwi¹zane z asemblerem: systemy kodowania,
zapis liczb i znaków
• Rejestry i pamiêæ maszyny z punktu widzenia programisty asemblera, adresowanie
• Instrukcje asemblera i listê rozkazów procesora
• Programowanie z u¿yciem MASM — Makro Asemblera
• U¿ycie programu NMAKE i tworzenie plików Makefile
• Programowanie w Windows: WinAPI
• Biblioteki DLL
• Technologie COM i OLE
• Zasoby programów Windows
Jeszcze jedna metoda tworzenia programów w Windows, która mo¿e zafascynowaæ
osoby lubi¹ce „d³ubanie w kodzie”? Dlaczego nie! Przeczytaj tê ksi¹¿kê, a sam bêdziesz
móg³ oceniæ, czy asembler siê zdewaluowa³.
Programowanie w Windows dla wtajemniczonych.
• Poznaj jêzyk asembler dla procesorów Intel i kompatybilnych
• Naucz siê u¿ywaæ Windows API z poziomu asemblera
• Poznaj narzêdzia u³atwiaj¹ce programowanie
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
430717379.001.png 430717379.002.png 430717379.003.png
Spis treci
Od Autora.......................................................................................... 9
Wstp ............................................................................................. 11
Rozdział 1. Zanim zaczniemy na powanie.......................................................... 15
Platform SDK, MSDN ......................................................................................................15
Pakiet Masm32..................................................................................................................16
Narzdziownia...................................................................................................................17
Rozdział 2. Asembler kontra Windows................................................................ 19
Krótko o ró!nych rodzinach okienek ................................................................................19
Gdzie si podziały przerwania?.........................................................................................23
Windows API....................................................................................................................24
Windows z perspektywy asemblera..................................................................................27
Rozdział 3. Co trzeba wiedzie$? ......................................................................... 31
Systemy liczbowe i nie tylko ............................................................................................31
Informacja i system dwójkowy (binarny)...................................................................32
Potgi liczby 2...................................................................................................................33
Jednostki objto4ci danych................................................................................................37
Kodowanie liczb................................................................................................................37
NKB (naturalny kod binarny).....................................................................................40
Kod dwójkowo-dziesitny BCD (Binary Coded Decimal) ........................................41
Reprezentacja liczb ujemnych ....................................................................................42
Reprezentacja stałoprzecinkowa.................................................................................45
Reprezentacja zmiennoprzecinkowa...........................................................................45
Problemy zwi;zane z błdami oblicze<......................................................................46
Kodowanie znaków...........................................................................................................47
ASCII (ISO 646).........................................................................................................47
ASCII rozszerzone (ASCII Extended, HI-ASCII)......................................................47
Polskie znaki diaktryczne w ró!nych systemach kodowania znaków........................54
ASCIIZ (ASCII Zero).................................................................................................55
Systemy kodowania MBCS (Multibyte Character Set) i DBCS
(Double Character Set) ............................................................................................55
Unicode.......................................................................................................................56
 
6
Win32ASM. Asembler w Windows
Rozdział 4. Asembler ......................................................................................... 63
Z czego składa si typowy program?................................................................................63
Program wykonywalny — od 4rodka................................................................................70
Gdzie umieszczaD kod i dane? ..........................................................................................73
Zamiana tekstu programu na kod wykonywalny ..............................................................74
Procesory 80x86 — krótkie wprowadzenie ......................................................................77
PamiD — model płaski.....................................................................................................77
Rejestry..............................................................................................................................80
Rejestry tzw. ogólnego przeznaczenia........................................................................80
Rejestr EIP ..................................................................................................................82
Rejestry segmentowe ..................................................................................................82
Rejestr eflags...............................................................................................................83
Moment uruchomienia programu......................................................................................86
Dostp do pamici i sposoby jej adresowania...................................................................87
Adresowanie bezpo4rednie .........................................................................................87
Adresowanie po4rednie...............................................................................................88
Adresowanie a wielko4D danych .......................................................................................89
Adresowanie a rejestry segmentowe.................................................................................90
Adresowanie ła<cuchów ...................................................................................................91
Instrukcje 32- i 16-bitowe .................................................................................................92
Stos....................................................................................................................................93
Wywoływanie procedur ....................................................................................................94
Przekazywanie parametrów przez rejestry..................................................................95
Przekazywanie parametrów przez stos .......................................................................95
Deklarowanie zmiennych..................................................................................................95
Zmienne, wskaFniki — adresowanie ................................................................................97
Najwa!niejsze instrukcje programu ..................................................................................99
Instrukcja mov ............................................................................................................99
Para instrukcji push/pop............................................................................................100
Rozkazy dotycz;ce operacji na ła<cuchach..............................................................100
Rozkazy arytmetyczne..............................................................................................101
Etykiety, ptle, skoki.................................................................................................102
Rozkazy zwi;zane z procedurami.............................................................................103
Rozkazy logiczne......................................................................................................105
Rozkazy przesuniD ..................................................................................................106
Lista rozkazów IA-32 — opis skrócony .........................................................................108
Instrukcje transferu danych.......................................................................................108
Instrukcje arytmetyczne............................................................................................108
Instrukcje porównuj;ce i testuj;ce ustawienie danego bitu......................................108
Instrukcje arytmetyczne (kod BCD).........................................................................109
Instrukcje logiczne....................................................................................................109
Instrukcje przesuniD ................................................................................................109
Instrukcje obrotów ....................................................................................................109
Intrukcje operuj;ce na bitach....................................................................................109
Intrukcje przenosz;ce kontrol do innego miejsca w programie..............................109
Intrukcje operuj;ce na ła<cuchach............................................................................110
Instrukcje dotycz;ce rejestru znaczników ................................................................110
Instrukcje dotycz;ce segmentów ..............................................................................110
Instrukcje ró!ne.........................................................................................................110
Rozdział 5. Macro Assembler........................................................................... 131
MASM — Macro Assembler..........................................................................................131
Jak powstaj; makra? .................................................................................................133
Spis treci
7
Najwa!niejsze informacje o makrach .............................................................................134
Znaki specjalne .........................................................................................................134
Zapis liczb.................................................................................................................134
Przedefiniowane symbole i funkcje..........................................................................134
Operatory ..................................................................................................................136
Makra zwi;zane z procesem asemblacji...................................................................138
Operatory zwi;zane z programowaniem ..................................................................147
Tworzenie własnych makr........................................................................................155
Plik macro.inc — przykłady u!ytecznych makr.......................................................155
Słowa zarezerwowane w jzyku Macro Assembler........................................................169
Rozdział 6. Pisanie plików makefile — program NMAKE ................................... 175
Zawarto4D pliku projektowego........................................................................................175
Bloki komentarzy......................................................................................................176
Bloki opisowe ...........................................................................................................176
Pora na praktyk — budowanie własnych projektów.....................................................178
Uniwersalny makefile (plik makefile.mak).....................................................................179
Rozdział 7. Parametry wywołania programów MASM, LINK, RC i NMAKE .......... 185
Parametry wywołania ML.EXE......................................................................................185
Parametry wywołania LINK.EXE...................................................................................187
Parametry wywołania RC.EXE.......................................................................................188
Parametry wywołania NMAKE ......................................................................................189
Rozdział 8. Podstawy programowania Windows ................................................ 191
Pojcie okna ....................................................................................................................192
Komunikaty okna............................................................................................................193
Szkielet aplikacji dialogowej ..........................................................................................194
Konsola............................................................................................................................195
Podsumowanie ................................................................................................................197
Rozdział 9. Jak korzysta$ z dokumentacji SDK? ............................................... 209
Notacja wgierska ...........................................................................................................209
Funkcje Win API.............................................................................................................209
Parametry funkcji Win API.............................................................................................213
Funkcje Unicode kontra funkcje ANSI...........................................................................215
Rozdział 10. Win32ASM — graficzny interfejs uytkownika GUI .......................... 223
Rola interfejsu u!ytkownika .....................................................................................223
Elementy interfejsu...................................................................................................225
Zmiany wprowadzone przez Windows XP...............................................................226
Wszystko o oknach ...................................................................................................226
Menu .........................................................................................................................262
Rozdział 11. Zasoby programów Windows .......................................................... 269
Skrypty zasobów w plikach .rc i .res...............................................................................269
Binaria, czyli zasoby w plikach wykonywalnych...........................................................272
Dostp do zasobów z poziomu programu.................................................................273
Jeszcze raz o narzdziach..........................................................................................273
Tworzenie plików z zasobami ..................................................................................274
Piszemy własny edytor tekstu...................................................................................275
Inne rodzaje zasobów................................................................................................287
Manifest w Windows XP..........................................................................................288
Zakładka Wersja — informacje o programie............................................................291
8
Win32ASM. Asembler w Windows
Rozdział 12. WinAPI — najcz=ciej wykorzystywane funkcje............................... 301
Wersja systemu ...............................................................................................................301
Odczyt parametrów systemu...........................................................................................301
Dostp do katalogów systemowych................................................................................302
Powiadomienia o zmianach (stanu systemu, jego ustawie< lub stanu okna itp.)............303
Dostp do linii polece< programu...................................................................................303
Operacje na liczbach i ła<cuchach ..................................................................................305
Pliki w systemie Windows..............................................................................................305
Dostp do Rejestru ..........................................................................................................306
Liczniki czasowe.............................................................................................................308
Rozdział 13. Zagadnienia wcale niezaawansowane............................................. 309
Biblioteki DLL................................................................................................................309
Haki w systemie Windows..............................................................................................312
Internet ............................................................................................................................313
Uaktualnianie wersji programu przez internet..........................................................313
Piszemy „konia troja<skiego”, czyli oprogramowanie typu serwer-klient...............317
Rozdział 14. Technologia COM i kontrolki OLE ................................................... 331
Obecno4D na pasku zada< — interfejs ITaskbarList.......................................................332
Plik skrótu — interfejs IShellLink ..................................................................................338
Najmniejsza przegl;darka 4wiata — interfejs IWebBrowser2 .......................................340
Rozdział 15. Materiały pomocnicze .................................................................... 351
Dokumentacja i podrczniki............................................................................................351
Najwa!niejsze strony domowe po4wicone Win32ASM ...............................................351
Opracowania i literatura dotycz;ce Win32ASM, WinAPI i tematyki pokrewnej..........352
Asemblery, kompilatory, programy ł;cz;ce ...................................................................352
Inne..................................................................................................................................353
Wybrane strony z narzdziami........................................................................................353
Rozdział 16. Programy @ródłowe......................................................................... 355
Skorowidz...................................................................................... 361
Zgłoś jeśli naruszono regulamin