Asembler_Programowanie_asempr.pdf

(681 KB) Pobierz
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym
powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi
bądź towarowymi ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje
były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie,
ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz
Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody
wynikłe z wykorzystania informacji zawartych w książce.
Redaktor prowadzący: Małgorzata Kulik
Projekt okładki: Studio Gravite / Olsztyn
Obarek, Pokoński, Pazdrijowski, Zaprucki
Grafika na okładce została wykorzystana za zgodą Shutterstock.com
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/asempr
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
ISBN: 978-83-283-5495-1
Copyright © Helion 2019
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
Słowem wstępu ......................................................................................................11
O książce ...........................................................................................................................................11
O autorze ..........................................................................................................................................11
Część I. Wprowadzenie ............................................................ 13
Rozdział 1. Od początku ...........................................................................................15
1.1.
1.2.
1.3.
1.4.
1.5.
Systemy liczbowe .................................................................................................................15
Liczby ze znakiem i bez znaku ..........................................................................................17
Wartość rozszerzona z zachowaniem znaku .............................................................18
Kod ASCII i Unicode ..........................................................................................................19
Systemy operacyjne Windows ...........................................................................................21
Podstawy działania kompilatorów ....................................................................................22
Rozdział 2. Architektura procesorów x86(-64) ...........................................................25
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
2.8.
2.9.
2.10.
Tryby pracy .........................................................................................................................25
Rejestry procesora ...............................................................................................................26
Pamięć operacyjna ..............................................................................................................31
Stos ........................................................................................................................................33
Tryby adresowania ..............................................................................................................33
Kod maszynowy ..................................................................................................................34
Format kodowania instrukcji ............................................................................................34
Przerwania ............................................................................................................................35
Zestawy instrukcji ...............................................................................................................35
Koprocesor ...........................................................................................................................35
Kup książkę
Poleć książkę
4
Asembler. Programowanie
Rozdział 3. Narzędzia programistyczne .....................................................................37
3.1.
3.2.
3.3.
3.4.
3.5.
Visual Studio i rozszerzenie do programowania w Asemblerze .................................. 37
Tworzenie projektu MASM w Visual Studio ........................................................... 38
Alternatywne podejście — wyodrębnienie narzędzi konsolowych ............................. 42
Edytor zasobów ................................................................................................................... 44
Edytor heksadecymalny ..................................................................................................... 44
Debugger .............................................................................................................................. 45
Rozdział 4. Wstęp do Asemblera x86 .........................................................................47
4.1.
4.2.
4.3.
Trochę historii — Asembler dla 16-bitowego podsystemu MS-DOS ......................... 47
Program „Witaj, 32-bitowy świecie Asemblera!” ........................................................... 51
Składnia wysokopoziomowa w Asemblerze ................................................................... 52
Rozdział 5. Wstęp do Asemblera x86-64 ....................................................................55
5.1.
5.2.
5.3.
Program „Witaj, 64-bitowy świecie Asemblera!” ........................................................... 55
Debugger — analiza programu krok po kroku .............................................................. 56
Zmienne i stałe .................................................................................................................... 57
Typy całkowite .............................................................................................................. 57
Typy zmiennoprzecinkowe ......................................................................................... 58
Struktury ........................................................................................................................ 58
Stałe ................................................................................................................................ 59
Instrukcje skoku warunkowego i bezwarunkowego ...................................................... 59
Etykiety nazwane i anonimowe ........................................................................................ 62
Metody tworzenia pętli ...................................................................................................... 63
Konwencje wywoływania funkcji ..................................................................................... 64
Tworzenie własnych funkcji (procedur) ......................................................................... 65
5.4.
5.5.
5.6.
5.7.
5.8.
Część II. Programowanie w Asemblerze x86-64 dla Windows ......69
Rozdział 6. Podstawy programowania aplikacji Windows ...........................................71
6.1.
6.2.
6.3.
6.4.
6.5.
Tworzenie konsoli tekstowej ............................................................................................. 71
Pobieranie i wyświetlanie danych .................................................................................... 71
Kolory tła i tekstu w konsoli ............................................................................................. 74
Tworzenie okna dialogowego ........................................................................................... 76
Kontrolki interfejsu graficznego użytkownika ............................................................... 78
Kup książkę
Poleć książkę
Spis treści
5
Rozdział 7. Napisy (ciągi znaków) .............................................................................81
7.1.
7.2.
7.3.
Deklaracja ciągów znaków .................................................................................................81
Dyrektywa byte ptr [] i podobne .......................................................................................81
Kopiowanie napisów ..........................................................................................................82
Rozdział 8. Informacje o środowisku pracy ................................................................85
8.1.
8.2.
Identyfikacja procesora ......................................................................................................85
Odczytywanie wersji systemu ............................................................................................86
Rozdział 9. Praca z plikami .......................................................................................89
9.1.
9.2.
9.3.
9.4.
9.5.
9.6.
Tworzenie plików i folderów .............................................................................................89
Zapis danych do pliku ........................................................................................................91
Odczyt danych z pliku ........................................................................................................92
Ustawianie wskaźnika pliku ..............................................................................................93
Usuwanie plików .................................................................................................................94
Zamykanie uchwytu pliku .................................................................................................95
Rozdział 10. Podstawy wielozadaniowości ................................................................97
10.1. Wątki .....................................................................................................................................97
10.2. Procesy ..................................................................................................................................98
10.3. Czasomierz .........................................................................................................................101
Rozdział 11. Programowanie sieciowe ....................................................................103
11.1. Obsługa protokołu FTP ....................................................................................................103
11.2. Gniazda systemu Windows .............................................................................................105
Funkcje WinSock ........................................................................................................105
Aplikacja w architekturze klient – serwer ...............................................................106
Rozdział 12. Łączenie Asemblera z językiem C++ .....................................................115
12.1. Funkcje Asemblera w projekcie Visual C++ .................................................................115
12.2. Funkcje wewnętrzne (ang. intrinsics) w Visual C++ ...................................................116
Przykład użycia funkcji wewnętrznej (ang. intrinsic) ............................................116
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin