POLECAMY
Autor:
Wydawca:
Format:
pdf, ibuk
Książka zawiera podstawowe wiadomości o programowaniu w języku Asembler. Poświęcona jest nauce pisania programów funkcjonujących zarówno w systemie DOS, jak i Windows. W stosunku do poprzednich wydań została wzbogacona o teorię, a także o technikę programowania wykorzystującą najnowsze rozkazy zaimplementowane w procesorach, operujące w sposób złożony na liczbach formatu całkowitego oraz zmiennoprzecinkowego.
Końcowe rozdziały książki sygnalizują współczesne tendencje w dziedzinie informatyki. Chodzi o informatykę kwantową, gałąź nauki powstającą z połączenia informatyki i fizyki kwantowej. Prawdopodobnie to ona będzie wyznaczać postęp w technice komputerowej w najbliższych dziesięcioleciach.
Zamieszczone ilustracje, rysunki, obrazy ekranowe sprawiają, że książka staje się prosta i zrozumiała nawet dla początkującego Czytelnika.
Rok wydania | 2009 |
---|---|
Liczba stron | 304 |
Kategoria | Programowanie |
Wydawca | Wydawnictwo Naukowe PWN |
ISBN-13 | 978-83-01-15931-3 |
Numer wydania | 1 |
Język publikacji | polski |
Informacja o sprzedawcy | ePWN sp. z o.o. |
POLECAMY
Ciekawe propozycje
Spis treści
Od Autora | 8 |
1. Podstawy Asemblera | 9 |
1.1. Natura języka Asembler | 9 |
1.2. Architektura sprzętowa komputera | 10 |
1.3. Powstawanie i rozwój języka Asembler | 10 |
1.4. O użyteczności programów | 11 |
1.5. Procesory, pamięć i jej adresowanie; przechowywanie odwrotne | 11 |
1.6. Wejście/wyjście | 14 |
1.7. Przerwania; wektory przerwań | 15 |
2. Rejestry | 17 |
2.1. Rejestry powszechnego zastosowania | 18 |
2.2. Rejestry wskaźnikowe i indeksowe | 20 |
2.3. Rejestry segmentowe | 22 |
2.4. Wskaźnik rozkazów | 25 |
2.5. Rejestr znaczników | 25 |
3. Oprogramowanie systemowe DOS i BIOS | 27 |
3.1. Funkcje BIOS | 29 |
4. „Towarzysze” głównego procesora | 31 |
5. Różne systemy liczenia | 33 |
5.1. Dwójkowy system liczenia | 34 |
5.2. Szesnastkowy system liczenia | 35 |
5.3. Elementarne operacje logiczne NOT, OR, AND; prawa de Morgana | 36 |
5.4. Liczby dwójkowe bez znaku i ze znakiem; uzupełnienie do dwóch; kod BCD | 39 |
5.5. Proste działania na liczbach szesnastkowych | 42 |
6. Program uruchomieniowy DEBUG | 44 |
6.1. Polecenia | 44 |
6.2. Proste programy pod DEBUG-iem | 51 |
6.3. Zalety, wady i możliwości programu DEBUG | 55 |
7. Podstawy konstruowania programów w języku Asembler | 57 |
7.1. Pole etykiety | 61 |
7.2. Pole operacji (pole mnemonika) | 62 |
7.3. Pole argumentów (operandów) | 62 |
7.4. Pole komentarza | 62 |
7.5. Tryby adresowania | 62 |
7.6. Schemat tworzenia programu asemblerowego | 66 |
8. Tablica wektorów przerwań | 72 |
9. Dwa przerwania najczęściej używane w programach asemblerowych | 76 |
INT 10H | 76 |
INT 21H | 78 |
10. Działania arytmetyczne na liczbach dwójkowych oraz w kodzie BCD | 82 |
10.1. Dodawanie (ADD, ADC) | 82 |
10.2. Odejmowanie (SUB, SBB) | 85 |
10.3. Mnożenie (MUL, IMUL) | 86 |
10.4. Dzielenie (DIV, IDIV; CBW, CWD) | 87 |
10.5. Negacja lub uzupełnienie do dwóch (NEG) | 91 |
10.6. Inkrementacja i dekrementacja (INC, DEC) | 92 |
10.7. Porównywanie (bajtów lub słów) przeznaczenia ze źródłem, CMP | 92 |
11. Operacje logiczne | 94 |
11.1. Negacja logiczna (bajtu lub słowa), NOT | 94 |
11.2. Testowanie lub porównywanie logiczne (bajtu lub słowa), TEST | 94 |
11.3. Mnożenie logiczne (bajtu lub słowa), AND | 94 |
11.4. Dodawanie logiczne (bajtów lub słów), OR | 95 |
11.5. Logiczna nierównoważność (bajtów lub słów), XOR | 95 |
12. Rotacje i przesunięcia logiczne oraz arytmetyczne | 96 |
12.1. Rotacja w lewo (bajtu lub słowa), ROL | 96 |
12.2. Rotacja w prawo (bajtu lub słowa), ROR | 97 |
12.3. Rotacja w lewo (bajtu lub słowa) z przeniesieniem, RCL | 98 |
12.4. Rotacja w prawo (bajtu lub słowa) z przeniesieniem, RCR | 98 |
12.5. Przesunięcie logiczne lub arytmetyczne (bajtu lub słowa) w lewo, SHL/SAL | 99 |
12.6. Przesunięcie logiczne (bajtu lub słowa) w prawo, SHR | 100 |
12.7. Przesunięcie arytmetyczne (bajtu lub słowa) w prawo, SAR | 101 |
13. Przetwarzanie łańcuchów | 103 |
13.1. Kopiowanie (bajtu lub słowa) z jednego miejsca pamięci do drugiego, MOVS, MOVSB, MOVSW | 103 |
13.2. Kopiowanie zawartości rejestru AL lub AX do pamięci, STOS, STOSB, STOSW | 105 |
13.3. Ładowanie (bajtu lub słowa) łańcucha z pamięci do AL lub AX, LODS, LODSB, LODSW | 105 |
13.4. Porównywanie (bajtu lub słowa) dwóch łańcuchów CMPS, CMPSB, CMPSW; przedrostki REPE i REPNE | 106 |
13.5. Porównywanie (bajtu lub słowa) łańcucha z zawartością rejestru akumulatora, AL lub AX, SCAS, SCASB, SCASW | 108 |
14. Rozkazy sterujące | 109 |
14.1. Rozkazy sterujące transmisją | 109 |
14.1.1. Bezwarunkowe rozkazy skoku | 109 |
14.1.2. Rozkazy skoków warunkowych | 113 |
14.1.3. Rozkazy pętli programowych, LOOP, LOOPZ, LOOPNZ | 115 |
14.2. Rozkazy sterujące procesorem: CLC, CLD, CLI, CMC, ESC, HLT, LOCK, NOP, STC, STD, STI, WAIT | 116 |
15. Operacje na stosie i adresowanie | 119 |
15.1. Rozkazy PUSH, POP | 119 |
15.2. Rozkazy operujące na znacznikach PUSHF, POPF, LAHF, SAHF | 119 |
15.3. Rozkazy wejścia-wyjścia: IN, OUT | 120 |
15.4. Adresowanie pamięci, adres fizyczny, adres logiczny; przechowywanie odwrotne | 120 |
15.5. Przedrostki (prefiksy) CS:, DS:, ES:, SS: i LOCK | 121 |
15.6. Rozkazy operujące na adresach LEA, LES, LDS | 123 |
16. Krótko o koprocesorze 8087 i jego programowaniu | 124 |
16.1. Kilka dodatkowych uwag na temat programowania koprocesora | 126 |
17. O liczbach w koprocesorze i nie tylko | 127 |
18. Narzędzia programisty | 132 |
18.1. Turbo Debugger dla DOS | 132 |
18.2. Turbo Librarian, Bibliotekarz (TLIB.EXE) – dla systemu DOS i Windows | 138 |
19. Nowa era procesorów | 151 |
20. Typy danych | 158 |
21. Technologia MMX | 160 |
22. Streaming SIMD Extensions (SSE) | 163 |
23. Technologia AVX (Advanced Vector Extensions) | 167 |
24. Asembler w środowisku Windows | 168 |
25. Wydruk na pulpit | 181 |
25.1. Wprowadzenie do aplikacji okienkowych w systemie Windows | 185 |
25.2. Wybrane funkcje API – spis alfabetyczny | 197 |
26. Nowe narzędzia programistyczne; program FASMW.EXE i OLLYDBG.EXE | 199 |
Dodatek A. Kod ASCII | 204 |
Dodatek B. Wpływ rozkazów na stan flag (znaczników) rejestru EFLAGS | 213 |
Dodatek C. Lista rozkazów: Intel 64 i IA-32 | 217 |
C.1. Rozkazy powszechnego stosowania | 217 |
C.2. x87 FPU i SIMD zachowania i odtworzenia stanu rejestru kontrolnego i statusu, MXCSR | 221 |
C.3. Rozkazy zaimplementowane w technologii MMXTM | 223 |
C.4. Rozkazy SSE | 225 |
C.5. Rozkazy SSE2 | 227 |
C.6. Rozkazy SSE3 | 230 |
C.7. Rozkazy SSSE3 | 231 |
C.8. Rozkazy SSE4 | 232 |
C.9. Rozkazy systemowe | 234 |
C.10. Rozkazy trybu 32: podtryb 64 | 235 |
C.11. Virtual-Machine Extensions (VMX) | 236 |
C.12. Safer Mode Extensions (SMX) | 236 |
C.13. Rozkazy Intel AVX, FMA i AES | 237 |
Dodatek D. Wybrane rejestry | 239 |
D.1. Rejestr flagowy (EFLAGS) | 239 |
D.2. Rejestry sterujące: CR0, CR1, CR2, CR3, CR4 | 239 |
D.3. MXCSR – rejestr sterujący/statusu | 242 |
D.4. Rejestr XFEATURE _ENABLED_MASK (XCR0 ;Extended Control Registers) | 242 |
Dodatek E. Fizyczne podstawy komputera kwantowego | 244 |
Mały słownik asemblerowy | 247 |
Epilog | 255 |
Ćwiczenia | 256 |
Odpowiedzi do ćwiczeń | 271 |
Indeks | 298 |