asembler. sztuka programowania. wydanie ii pełna wersja.pdf
(
23581 KB
)
Pobierz
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Asembler. Sztuka
programowania. Wydanie II
Idź do
• Spis treści
• Przykładowy rozdział
Autor
:
Randall Hyde
Tłumaczenie: Przemysław Szeremiota
ISBN: 978-83-246-2854-4
Tytuł oryginału
:
The Art of Assembly Language, 2nd edition
Format: B5, stron: 816
Katalog książek
• Katalog online
• Zamów drukowany
katalog
Poznaj asembler od podstaw i zbuduj fundament swojej wiedzy o programowaniu
• Jak pisać, kompilować i uruchamiać programy w języku HLA?
• Jak obsługiwać zbiory znaków w bibliotece standardowej HLA?
• Jak obliczać wartości wyrażeń logicznych?
Poznanie asemblera jest jak położenie fundamentu pod budowlę całej twojej wiedzy informatycznej,
ponieważ to właśnie ono ułatwia zrozumienie mechanizmów rządzących innymi językami
programowania. Język asemblera, należący do języków programowania niższego poziomu, jest
powszechnie stosowany do pisania sterowników, emulatorów i gier wideo. Jednak omawiany
w tej książce język HLA posiada też wiele cech języków wyższego poziomu, takich jak C, C++ czy
Java, dzięki czemu przy jego używaniu nie musisz rezygnować z licznych udogodnień, typowych
dla takich języków.
Książka „Asembler. Sztuka programowania. Wydanie II” stanowi obszerne i wyczerpujące
omówienie języka asemblera. Dzięki wielu jasnym przykładom, pozbawionym niepotrzebnej
specjalistycznej terminologii, zawarty tu materiał staje się łatwo przyswajalny dla każdego, kto
chciałby poznać programowanie niższego poziomu. Korzystając z tego podręcznika, dowiesz się
m.in., jak deklarować i stosować stałe, zmienne skalarne, wskaźniki, tablice, struktury, unie
i przestrzenie nazw. Nauczysz się realizować w języku asemblera struktury sterujące przebiegiem
wykonania programu. Ponadto drugie wydanie zostało uaktualnione zgodnie ze zmianami, które
zaszły w języku HLA. Uwzględnia także stosowanie HLA w kontekście systemów Windows, Linux,
Mac OS X i FreeBSD.
• Wstęp do asemblera
• Anatomia programu HLA
• Reprezentacja danych
• Dostęp do pamięci i jej organizacja
• Stałe, zmienne i typy danych
• Procedury i moduły
• Niskopoziomowe struktury sterujące wykonaniem programu
• Makrodenicje i język czasu kompilacji
• Manipulowanie bitami
• Klasy i obiekty
Podręcznik na najwyższym poziomie o językach programowania niższego poziomu
Twój koszyk
• Dodaj do koszyka
Cennik i informacje
• Zamów informacje
o nowościach
• Zamów cennik
Czytelnia
• Fragmenty książek
online
Kontakt
Helion SA
ul. Kościuszki 1c
44-100 Gliwice
tel. 32 230 98 63
e-mail: helion@helion.pl
© Helion 1991–2010
Spis treci
PODZIKOWANIA ................................................................................... 15
1
WSTP DO JZYKA ASEMBLEROWEGO .................................................... 17
1.1.
Anatomia programu HLA ..........................................................................................18
1.2.
Uruchamianie pierwszego programu HLA ................................................................20
1.3.
Podstawowe deklaracje danych programu HLA .......................................................22
1.4.
Wartoci logiczne ......................................................................................................24
1.5.
Wartoci znakowe .....................................................................................................25
1.6.
Rodzina procesorów 80x86 firmy Intel .....................................................................25
1.7.
Podsystem obsugi pamici .......................................................................................28
1.8.
Podstawowe instrukcje maszynowe .........................................................................31
1.9.
Podstawowe struktury sterujce wykonaniem programu HLA ................................34
1.9.1.
Wyraenia logiczne w instrukcjach HLA .....................................................35
1.9.2.
Instrukcje if..then..elseif..else..endif jzyka HLA .........................................37
1.9.3.
Iloczyn, suma i negacja w wyraeniach logicznych ......................................39
1.9.4.
Instrukcja while ...........................................................................................42
1.9.5.
Instrukcja for ...............................................................................................43
1.9.6.
Instrukcja repeat .........................................................................................44
1.9.7.
Instrukcje break oraz breakif ......................................................................45
1.9.8.
Instrukcja forever ........................................................................................45
1.9.9.
Instrukcje try, exception oraz endtry ..........................................................46
1.10.
Biblioteka standardowa jzyka HLA — wprowadzenie ............................................50
1.10.1. Stae predefiniowane w module stdio .........................................................52
1.10.2. Standardowe wejcie i wyjcie programu ...................................................53
1.10.3. Procedura stdout.newln ..............................................................................54
1.10.4. Procedury stdout.putiN ..............................................................................54
1.10.5. Procedury stdout.putiNSize ........................................................................54
1.10.6. Procedura stdout.put ..................................................................................56
1.10.7. Procedura stdin.getc ...................................................................................58
1.10.8. Procedury stdin.getiN .................................................................................59
1.10.9. Procedury stdin.readLn i stdin.flushInput ....................................................60
1.10.10. Procedura stdin.get .....................................................................................61
1.11.
Jeszcze o ochronie wykonania kodu w bloku try..endtry ......................................... 62
1.11.1.
Zagniedone bloki try..endtry .................................................................. 63
1.11.2.
Klauzula unprotected bloku try..endtry ...................................................... 65
1.11.3.
Klauzula anyexception bloku try..endtry .................................................... 68
1.11.4.
Instrukcja try..endtry i rejestry ................................................................... 68
1.12.
Jzyk asemblerowy a jzyk HLA ............................................................................... 70
1.13.
róda informacji dodatkowych ............................................................................... 71
2
REPREZENTACJA DANYCH ..................................................................... 73
2.1.
Systemy liczbowe ..................................................................................................... 74
2.1.1.
System dziesitny — przypomnienie .......................................................... 74
2.1.2.
System dwójkowy ...................................................................................... 74
2.1.3.
Formaty liczb dwójkowych ........................................................................ 75
2.2.
System szesnastkowy ............................................................................................... 76
2.3.
Organizacja danych ................................................................................................... 79
2.3.1.
Bity ............................................................................................................. 79
2.3.2.
Póbajty ....................................................................................................... 79
2.3.3.
Bajty ............................................................................................................ 80
2.3.4.
Sowa .......................................................................................................... 82
2.3.5.
Podwójne sowa ......................................................................................... 83
2.3.6.
Sowa poczwórne i dugie ........................................................................... 84
2.4.
Operacje arytmetyczne na liczbach dwójkowych i szesnastkowych ........................ 85
2.5.
Jeszcze o liczbach i ich reprezentacji ........................................................................ 86
2.6.
Operacje logiczne na bitach ...................................................................................... 88
2.7.
Operacje logiczne na liczbach dwójkowych i cigach bitów .................................... 91
2.8.
Liczby ze znakiem i bez znaku .................................................................................. 93
2.9.
Rozszerzanie znakiem, rozszerzanie zerem, skracanie, przycinanie ........................ 98
2.10.
Przesunicia i obroty .............................................................................................. 102
2.11.
Pola bitowe i dane spakowane ............................................................................... 107
2.12.
Wprowadzenie do arytmetyki zmiennoprzecinkowej ............................................ 112
2.12.1.
Formaty zmiennoprzecinkowe przyjte przez IEEE ................................ 116
2.12.2.
Obsuga liczb zmiennoprzecinkowych w jzyku HLA .............................. 120
2.13.
Reprezentacja liczb BCD ........................................................................................ 124
2.14.
Znaki ....................................................................................................................... 125
2.14.1.
Zestaw znaków ASCII .............................................................................. 125
2.14.2.
Obsuga znaków ASCII w jzyku HLA ..................................................... 129
2.15.
Zestaw znaków Unicode ........................................................................................ 134
2.16.
róda informacji dodatkowych ............................................................................. 134
3
DOSTP DO PAMICI I JEJ ORGANIZACJA ............................................ 135
3.1.
Tryby adresowania procesorów 80x86 .................................................................. 136
3.1.1.
Adresowanie przez rejestr ....................................................................... 136
3.1.2.
32-bitowe tryby adresowania procesora 80x86 ....................................... 137
6
Spis treci
3.2.
Organizacja pamici fazy wykonania .......................................................................144
3.2.1.
Obszar kodu ..............................................................................................145
3.2.2.
Obszar zmiennych statycznych .................................................................147
3.2.3.
Obszar niemodyfikowalny .........................................................................147
3.2.4.
Obszar danych niezainicjalizowanych .......................................................148
3.2.5.
Atrybut @nostorage .................................................................................149
3.2.6.
Sekcja deklaracji var ..................................................................................150
3.2.7.
Rozmieszczenie sekcji deklaracji danych w programie HLA .....................151
3.3.
Przydzia pamici dla zmiennych w programach HLA ............................................152
3.4.
Wyrównanie danych w programach HLA ...............................................................154
3.5.
Wyraenia adresowe ...............................................................................................157
3.6.
Koercja typów .........................................................................................................159
3.7.
Koercja typu rejestru ...............................................................................................162
3.8.
Pami obszaru stosu oraz instrukcje push i pop ....................................................164
3.8.1.
Podstawowa posta instrukcji push ..........................................................164
3.8.2.
Podstawowa posta instrukcji pop ............................................................166
3.8.3.
Zachowywanie wartoci rejestrów za pomoc instrukcji push i pop .......167
3.9.
Stos jako kolejka LIFO .............................................................................................168
3.9.1.
Pozostae wersje instrukcji obsugi stosu ..................................................170
3.9.2.
Usuwanie danych ze stosu bez ich zdejmowania ......................................172
3.10.
Odwoywanie si do danych na stosie bez ich zdejmowania ..................................174
3.11.
Dynamiczny przydzia pamici — obszar pamici sterty ........................................176
3.12.
Instrukcje inc oraz dec ............................................................................................181
3.13.
Pobieranie adresu obiektu .......................................................................................181
3.14.
róda informacji dodatkowych ..............................................................................182
4
STAE, ZMIENNE I TYPY DANYCH ....................................................... 183
4.1.
Kilka dodatkowych instrukcji: intmul, bound i into .................................................184
4.2.
Deklaracje staych i zmiennych w jzyku HLA ........................................................188
4.2.1.
Typy staych ..............................................................................................192
4.2.2.
Literay staych acuchowych i znakowych ..............................................193
4.2.3.
Stae acuchowe i napisowe w sekcji const .............................................195
4.2.4.
Wyraenia staowartociowe ....................................................................197
4.2.5.
Wielokrotne sekcje const i ich kolejno w programach HLA ..................200
4.2.6.
Sekcja val programu HLA ..........................................................................200
4.2.7.
Modyfikowanie obiektów sekcji val
w wybranym miejscu kodu ródowego programu ..................................201
4.3.
Sekcja type programu HLA .....................................................................................202
4.4.
Typy wyliczeniowe w jzyku HLA ..........................................................................203
4.5.
Typy wskanikowe ..................................................................................................204
4.5.1.
Wskaniki w jzyku asemblerowym .........................................................206
4.5.2.
Deklarowanie wskaników w programach HLA .......................................207
4.5.3.
Stae wskanikowe i wyraenia staych wskanikowych ...........................208
4.5.4.
Zmienne wskanikowe a dynamiczny przydzia pamici ..........................209
4.5.5.
Typowe bdy stosowania wskaników ....................................................209
7
Spis treci
Plik z chomika:
emce007
Inne pliki z tego folderu:
coreldraw x4 pl. ćwiczenia praktyczne scan.pdf
(6977 KB)
oracle-database.-tworzenie-aplikacji-internetowych-w-ajax-i-php cała książka.pdf
(6860 KB)
grillowanie-dla-bystrzakow.-wydanie-ii- ebook.pdf
(4049 KB)
thinking in c++. edycja polska full scan.pdf
(3428 KB)
moc coachingu. poznaj narzędzia rozwijające umiejętności i kompetencje osobiste. wydanie ii rozszerzone ebook.pdf
(6342 KB)
Inne foldery tego chomika:
ebooki4
ebooki5
ebooki6
Zgłoś jeśli
naruszono regulamin