Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00265 008598 10442125 na godz. na dobę w sumie
Asembler dla procesorów Intel. Vademecum profesjonalisty - książka
Asembler dla procesorów Intel. Vademecum profesjonalisty - książka
Autor: Liczba stron: 644
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-910-X Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> asembler - programowanie
Porównaj ceny (książka, ebook, audiobook).
Chociaż świat programowania nieodwołalnie zdominowany jest przez języki wyższego poziomu (takie jak C, C++ czy Java), znajomość asemblera jest nadal wysoko ceniona. Użycie języka maszynowego pozwala na pisanie niezwykle wydajnych programów, odwołujących się bezpośrednio do sprzętu, wykorzystujących w 100% możliwości hardware'u.

Książka 'Asembler dla procesorów Intel. Vademecum profesjonalisty' to kompletny przewodnik po języku programowania najpopularniejszej rodziny procesorów. Możesz ją traktować jako podręcznik asemblera lub jako kompendium wiedzy, do którego zawsze będziesz mógł się odwołać, gdy zajdzie taka potrzeba. Znajdziesz w niej informacje dotyczące:

Oprócz krótkich przykładów książka 'Asembler dla procesorów Intel. Vademecum profesjonalisty' zawiera 75 gotowych do uruchomienia programów, które realizują koncepcje prezentowane w tekście. Znajdujące się na końcu książki dodatki stanowią przewodniki po przerwaniach MS-DOS i mnemonikach kodu maszynowego.
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Assembler dla procesorów Intel. Vademecum profesjonalisty Autor: Kip R. Irvine T³umaczenie: Marcin Jêdrysiak ISBN: 83-7197-910-X Tytu³ orygina³u: Assembly Language for Intel-Based Computers Format: B5, stron: 640 Chocia¿ ġwiat programowania nieodwo³alnie zdominowany jest przez jêzyki wy¿szego poziomu (takie jak C, C++ czy Java), znajomoġæ asemblera jest nadal wysoko ceniona. U¿ycie jêzyka maszynowego pozwala na pisanie niezwykle wydajnych programów, odwo³uj¹cych siê bezpoġrednio do sprzêtu, wykorzystuj¹cych w 100 mo¿liwoġci hardware u. Ksi¹¿ka „Asembler dla procesorów Intel. Vademecum profesjonalisty” to kompletny przewodnik po jêzyku programowania najpopularniejszej rodziny procesorów. Mo¿esz j¹ traktowaæ jako podrêcznik asemblera lub jako kompendium wiedzy, do którego zawsze bêdziesz móg³ siê odwo³aæ, gdy zajdzie taka potrzeba. Znajdziesz w niej informacje dotycz¹ce: • architektury mikroprocesorów i zestawu rozkazów procesorów z rodziny Intel 80x86 • dyrektyw, makr i operatorów jêzyka asembler oraz podstawowej struktury programu • metodologii programowania oraz sposobów u¿ycia jêzyka asembler do tworzenia narzêdzi systemowych i aplikacji • sposobów pracy z urz¹dzeniami sprzêtowymi • interakcji miêdzy programem napisanym w jêzyku asembler, systemem operacyjnym a innymi aplikacjami • ġledzenia przebiegu wykonania programu za pomoc¹ debugera Oprócz krótkich przyk³adów ksi¹¿ka „Asembler dla procesorów Intel. Vademecum profesjonalisty” zawiera 75 gotowych do uruchomienia programów, które realizuj¹ koncepcje prezentowane w tekġcie. Znajduj¹ce siê na koñcu ksi¹¿ki dodatki stanowi¹ przewodniki po przerwaniach MS-DOS i mnemonikach kodu maszynowego. 5RKUVTGħEK 2TGFOQYC   Rozdział 1. 9RTQYCFGPKG   1.1. Kontekst języka asembler ...................................................s............................................21 1.1.1. Czym jest język asembler?...................................................s................................22 1.1.2. Aplikacje w języku asembler ...................................................s............................23 1.1.3. Język maszynowy...................................................s..............................................25 1.2. Reprezentacja danych ...................................................s..................................................26 Rozdział 2. 1.2.1. Liczby binarne...................................................s...................................................s26 1.2.2. Konwersja liczb dwójkowych na dziesiętne ...................................................s.....28 1.2.3. Liczby szesnastkowe ...................................................s.........................................29 1.2.4. Liczby ze znakiem...................................................s.............................................30 1.2.5. Przechowywanie znaków ...................................................s..................................32 1.3. Wprowadzenie do języka asembler ...................................................s.............................33 1.3.1. Polecenia języka asembler ...................................................s................................33 1.3.2. Prosty program napisany w Debug ...................................................s...................34 1.3.3. Polecenia narzędzia Debug ...................................................s...............................36 1.4. Pytania kontrolne ...................................................s...................................................s......37 #TEJKVGMVWTCURTúVQYCKRTQITCOQYC   2.1. Architektura 16-bitowych procesorów Intel ...................................................s................41 2.1.1. Procesor...................................................s...................................................s..........41 2.1.2. Rejestry...................................................s...................................................s...........42 2.1.3. Rejestry statusu i sterowania ...................................................s.............................45 2.1.4. Znaczniki...................................................s...................................................s........45 2.1.5. Cykl wykonania instrukcji ...................................................s................................46 2.1.6. Rodzina mikroprocesorów Intel ...................................................s........................47 2.2. Architektura 32-bitowych procesorów Intel ...................................................s................49 2.2.1. Ulepszony cykl wykonywania rozkazów...................................................s..........49 2.2.2. Zestaw rejestrów 32-bitowych ...................................................s..........................49 2.3. System operacyjny i pamięć ...................................................s........................................50 2.3.1. Historia obsługi pamięci w komputerach PC...................................................s....50 2.3.2. Architektura pamięci ...................................................s.........................................51 2.3.3. Startowa procedura systemu...................................................s..............................52 2.3.4. Obsługa grafiki...................................................s..................................................54 2.3.5. Szeregowe porty komunikacyjne ...................................................s......................54 2.3.6. Pamięć tylko do odczytu (ROM) ...................................................s......................55 2.3.7. Obliczanie adresu absolutnego...................................................s..........................55 2.4. Komponenty mikrokomputera...................................................s.....................................56 2.4.1. Wewnętrzne komponenty...................................................s..................................56 2.4.2. Rodzaje płyt głównych...................................................s......................................57 2.4.3. Architektura magistrali...................................................s......................................57 2.4.4. Karta graficzna ...................................................s..................................................58  #UGODNGTFNCRTQEGUQTÎY+PVGN8CFGOGEWORTQHGULQPCNKUV[ Rozdział 3. Rozdział 4. 2.4.5. Pamięć RAM ...................................................s...................................................s..59 2.4.6. Pamięć wideo ...................................................s...................................................s.61 2.4.7. Nośniki danych...................................................s..................................................61 2.5. Pytania kontrolne ...................................................s...................................................s......64 2.6. Zadania programistyczne...................................................s.............................................66 2QFUVCY[Lú[MCCUGODNGT   3.1. Podstawowe elementy języka asembler...................................................s.......................71 3.1.1. Stałe i wyrażenia ...................................................s...............................................71 3.1.2. Instrukcje...................................................s...................................................s........73 3.1.3. Nazwy...................................................s...................................................s.............73 3.2. Przykładowy program w języku asembler...................................................s...................74 3.3. Asemblowanie, konsolidacja oraz usuwanie błędów ...................................................s..76 3.3.1. Borland Turbo Assembler (TASM) ...................................................s..................78 3.3.2. Microsoft Assembler (MASM) ...................................................s.........................79 3.4. Dyrektywy alokacji danych ...................................................s.........................................80 3.4.1. Dyrektywa Define Byte (DB) ...................................................s...........................80 3.4.2. Dyrektywa Define Word (DW)...................................................s.........................82 3.4.3. Dyrektywa Doubleword (DD)...................................................s...........................83 3.5. Stałe symboliczne ...................................................s...................................................s.....83 3.5.1. Dyrektywa znaku równości...................................................s...............................84 3.5.2. Dyrektywa EQU...................................................s................................................84 3.5.3. Dyrektywa TEXTEQU...................................................s......................................85 3.6. Polecenia transferu danych ...................................................s..........................................86 3.6.1. Polecenie MOV ...................................................s.................................................86 3.6.2. Operandy z przemieszczeniem...................................................s..........................88 3.6.3. Polecenie XCHG ...................................................s...............................................88 3.7. Polecenia arytmetyczne ...................................................s...............................................89 3.7.1. Polecenia INC i DEC ...................................................s........................................89 3.7.2. Polecenie ADD...................................................s..................................................90 3.7.3. Polecenie SUB...................................................s...................................................s90 3.7.4. Znaczniki zmieniane przez polecenia ADD i SUB..............................................91 3.8. Podstawowe typy operandów ...................................................s......................................92 3.8.1. Operandy rejestru ...................................................s..............................................93 3.8.2. Operandy bezpośrednie ...................................................s.....................................93 3.8.3. Operandy pośrednie...................................................s...........................................93 3.8.4. Bezpośrednie operandy z przesunięciem ...................................................s..........94 3.9. Pytania kontrolne ...................................................s...................................................s......95 3.10. Zadania programistyczne...................................................s...........................................98 7ľ[EKGCUGODNGTC   4.1. Dodatkowe informacje o asemblerze i konsolidatorze .................................................101 4.1.1. Plik kodu źródłowego...................................................s......................................101 4.1.2. Plik mapy...................................................s...................................................s......102 4.1.3. Asemblowanie i konsolidowanie aplikacji poprzez pliki wsadowe MS-DOS ......103 4.1.4. Modele pamięci ...................................................s...............................................103 4.1.5. Dyrektywy docelowego procesora ...................................................s..................105 4.2. Operatory i wyrażenia...................................................s................................................106 4.2.1. Operatory arytmetyczne ...................................................s..................................106 4.2.2. Operatory OFFSET, SEG, PTR, LABEL i EVEN.............................................108 4.2.3. Operatory TYPE i SIZE ...................................................s..................................110 4.2.4. Dyrektywa ENUM w Borland TASM ...................................................s............111 4.3. Polecenia JMP i LOOP ...................................................s..............................................113 4.3.1. Polecenie JMP ...................................................s.................................................113 4.3.2. Polecenie LOOP...................................................s..............................................115 4.3.3. Polecenia LOOP, LOOPW i LOOPD ...................................................s.............116 5RKUVTGħEK  4.4. Adresowanie pośrednie...................................................s..............................................117 4.4.1. Operandy pośrednie...................................................s.........................................117 4.4.2. Operandy bazowe i indeksowe...................................................s........................120 4.4.3. Operandy bazowo-indeksowe ...................................................s.........................121 4.4.4. Operandy bazowo-indeksowe z przemieszczeniem ...........................................122 4.5. Usuwanie błędów...................................................s...................................................s....123 4.5.1. Wielkość operandów i błędy adresowania ...................................................s......124 4.6. Dodatkowe polecenia 80386 i 80486...................................................s.........................125 4.6.1. Polecenia MOVZX i MOVSX ...................................................s........................125 4.6.2. Polecenie XADD...................................................s.............................................126 4.7. Użycie biblioteki konsolidowanej ...................................................s.............................126 4.7.1. Wybrane procedury z dołączonej do książki biblioteki konsolidowanej ...........126 4.7.2. Generowanie losowych wartości...................................................s.....................130 4.7.3. Zdarzenia czasowe ...................................................s..........................................130 4.8. Pytania kontrolne ...................................................s...................................................s....131 4.9. Zadania programistyczne...................................................s...........................................134 2TQEGFWT[KRTGTYCPKC   5.1. Operacje na stosie ...................................................s...................................................s...137 5.1.1. Polecenia PUSH i POP...................................................s....................................139 5.2. Procedury ...................................................s...................................................s................140 5.2.1. Dyrektywy PROC i ENDP...................................................s..............................141 5.2.2. Przykładowy program SUBS.ASM...................................................s.................141 5.2.3. Zagnieżdżone wywołania procedur...................................................s.................143 5.2.4. Procedury NEAR i FAR...................................................s..................................144 5.2.5. Użycie modeli pamięci...................................................s....................................145 5.3. Parametry procedury...................................................s..................................................147 5.3.1. Przekazywanie argumentów w rejestrach ...................................................s.......147 5.4. Przerwania programowe ...................................................s............................................148 5.4.1. Polecenie INT...................................................s..................................................149 5.4.2. Przekierowanie wejścia-wyjścia ...................................................s.....................150 5.5. Wywołania funkcji MS-DOS...................................................s.....................................151 5.5.1. Funkcje wyjścia...................................................s...............................................151 5.5.2. Funkcje wejścia ...................................................s...............................................152 5.5.3. Funkcje daty i czasu ...................................................s........................................157 5.6. Obsługa klawiatury na poziomie BIOS (INT 16h)...................................................s....158 5.7. Sterowanie grafiką na poziomie BIOS (INT 10h) ...................................................s.....160 5.7.1. Tryby wideo i atrybuty...................................................s....................................160 5.7.2. Kolorowy tryb tekstowy...................................................s..................................162 5.7.3. Funkcje grafiki INT 10h...................................................s..................................164 5.7.4. Bezpośredni zapis do pamięci wideo ...................................................s..............171 5.8. Rekurencja ...................................................s...................................................s..............172 5.9. Pytania kontrolne ...................................................s...................................................s....174 5.10. Zadania programistyczne...................................................s.........................................177 2TGVYCTCPKGYCTWPMQYG   6.1. Polecenia operacji logicznych i porównania ...................................................s.............181 6.1.1. Rejestr Flags...................................................s...................................................s.181 6.1.2. Polecenie AND...................................................s................................................182 6.1.3. Polecenie OR...................................................s...................................................s183 6.1.4. Polecenie XOR...................................................s................................................185 6.1.5. Polecenie NOT ...................................................s................................................186 6.1.6. Polecenie NEG ...................................................s................................................186 6.1.7. Polecenie TEST...................................................s...............................................186 6.1.8. Polecenia BT, BTC, BTR i BTS ...................................................s.....................187 Rozdział 5. Rozdział 6.  #UGODNGTFNCRTQEGUQTÎY+PVGN8CFGOGEWORTQHGULQPCNKUV[ 6.1.9. Polecenia BSF i BSR...................................................s.......................................188 6.1.10. Polecenie CMP...................................................s..............................................188 6.1.11. Polecenie CMPXCHG...................................................s...................................190 6.1.12. Operatory logiczne asemblera...................................................s.......................190 6.2. Skoki warunkowe ...................................................s...................................................s...191 6.2.1. Polecenie Jwarunek ...................................................s.........................................191 6.2.2. Generowanie kodu dla skoków warunkowych (dla procesorów 386 i nowszych)....194 6.2.3. Przykłady zastosowania skoków warunkowych ................................................195 6.2.4. Polecenie SETwarunek ...................................................s...................................200 6.3. Pętle warunkowe...................................................s...................................................s.....201 6.3.1. Polecenia LOOPZ i LOOPE ...................................................s...........................201 6.3.2. Polecenia LOOPNZ i LOOPNE...................................................s......................202 6.4. Struktury logiczne wysokiego poziomu ...................................................s....................202 6.4.1. Prosta instrukcja IF...................................................s..........................................203 6.4.2. Złożona instrukcja IF ...................................................s......................................203 6.4.3. Struktura WHILE ...................................................s............................................204 6.4.4. Struktura REPEAT-UNTIL...................................................s.............................205 6.4.5. Struktura CASE...................................................s...............................................207 6.4.6. Tablica przesunięć procedur...................................................s............................208 6.4.7. Automat o skończonej liczbie stanów...................................................s.............209 6.5. Pytania kontrolne ...................................................s...................................................s....213 6.6. Zadania programistyczne...................................................s...........................................216 Rozdział 7. 1RGTCELGPCNKEDCEJECđMQYKV[EJ   7.1. Polecenia przesunięcia i obrotu ...................................................s.................................223 7.1.1. Polecenie SHL...................................................s.................................................223 7.1.2. Polecenia SHLD i SHRD ...................................................s................................225 7.1.3. Polecenie SHR...................................................s.................................................226 7.1.4. Polecenia SAL i SAR...................................................s......................................226 7.1.5. Polecenie ROL ...................................................s................................................227 7.1.6. Polecenie ROR ...................................................s................................................228 7.1.7. Polecenia RCL i RCR ...................................................s.....................................228 7.2. Przykładowe zastosowania ...................................................s........................................229 7.2.1. Jednoczesne przesunięcie wielu bajtów ...................................................s..........229 7.2.2. Szybkie mnożenie i dzielenie...................................................s..........................230 7.2.3. Wyświetlenie bajta w formacie binarnym...................................................s.......230 7.2.4. Wydzielenie ciągu bitowego ...................................................s...........................231 7.2.5. Dyrektywa RECORD...................................................s......................................232 7.3. Rozszerzone operacje dodawania i odejmowania ...................................................s.....235 7.3.1. Polecenie ADC...................................................s................................................235 7.3.2. Polecenie SBB...................................................s.................................................236 7.4. Mnożenie i dzielenie...................................................s..................................................237 7.4.1. Polecenie MUL ...................................................s...............................................238 7.4.2. Polecenie IMUL ...................................................s..............................................239 7.4.3. Polecenie DIV ...................................................s.................................................240 7.4.4. Polecenie IDIV...................................................s................................................241 7.4.5. Polecenia CBW, CWD, CDQ i CWDE...................................................s...........241 7.4.6. Zapobieganie przepełnieniu dzielenia...................................................s.............242 7.5. Zastosowanie — bezpośrednie wyjście wideo ...................................................s..........243 7.5.1. Procedura Set_videoseg ...................................................s..................................243 7.5.2. Procedura Writechar_direct...................................................s.............................243 7.5.3. Procedura Writestring_direct ...................................................s..........................244 7.6. Operacje na liczbach ASCII i upakowanych liczbach dziesiętnych.............................245 7.6.1. Polecenie AAA...................................................s................................................246 7.6.2. Polecenie AAS ...................................................s................................................246 5RKUVTGħEK  7.6.3. Polecenie AAM ...................................................s...............................................247 7.6.4. Polecenie AAD...................................................s................................................247 7.6.5. Polecenia DAA i DAS...................................................s.....................................247 7.7. Pytania kontrolne ...................................................s...................................................s....248 7.8. Zadania programistyczne...................................................s...........................................251 7.8.1. Manipulacja bitami...................................................s..........................................251 7.8.2. Zbiory bitowe ...................................................s..................................................251 7.8.3. Liczby pierwsze...................................................s...............................................253 7.8.4. Operacje arytmetyczne na dużych liczbach ...................................................s....253 7.8.5. Bezpośrednie wyjście wideo ...................................................s...........................255 5VTWMVWT[KOCMTC   8.1. Struktury ...................................................s...................................................s.................257 8.2. Wprowadzenie do makr ...................................................s.............................................260 8.2.1. Makra z parametrami ...................................................s......................................261 8.2.2. Definiowanie makra ...................................................s........................................262 8.2.3. Przykład — makro mDisplayStr ...................................................s.....................263 8.2.4. Przykład — makro mGotoRowCol ...................................................s.................264 8.2.5. Makra do alokacji przestrzeni ...................................................s.........................265 8.2.6. Dyrektywa LOCAL...................................................s.........................................265 8.3. Specjalne techniki użycia makr ...................................................s.................................266 8.3.1. Zagnieżdżone makra ...................................................s.......................................266 8.3.2. Wywoływanie procedur przez makro ...................................................s.............267 8.3.3. Dyrektywy warunkowego asemblowania ...................................................s.......268 8.3.4. Dyrektywa EXITM ...................................................s.........................................270 8.3.5. Operatory makra...................................................s..............................................271 8.4. Biblioteka prostych makr...................................................s...........................................273 8.4.1. Makro mWriteliteral (zapis dosłownego ciągu).................................................273 8.4.2. Makro mCondCall (wywołanie warunkowe)...................................................s..273 8.4.3. Makro mCompJmp (porównanie i skok) ...................................................s........274 8.4.4. Makro mMult16 (rozszerzone mnożenie) ...................................................s.......274 8.4.5. Makro mMove (kopiowanie między adresami pamięci)....................................275 8.4.6. Makro mLongLoop (rozszerzona pętla)...................................................s..........276 8.5. Zaawansowane makra i dyrektywy...................................................s............................277 8.5.1. Dyrektywa REPT ...................................................s............................................277 8.5.2. Powiązana lista...................................................s................................................277 8.5.3. Dyrektywa IRP...................................................s................................................279 8.5.4. Makro rozszerzonego skoku...................................................s............................280 8.5.5. Ogólne makra przesunięcia i obrotu...................................................s................281 8.5.6. Dodatkowe wskazówki ...................................................s...................................282 8.6. Pytania kontrolne ...................................................s...................................................s....289 8.7. Zadania programistyczne...................................................s...........................................291 -QPYGTULGNKEDQYGKDKDNKQVGMK   9.1. Wprowadzenie ...................................................s...................................................s........295 9.2. Metody translacji znaków...................................................s..........................................296 9.2.1. Polecenie XLAT...................................................s..............................................296 9.2.2. Filtrowanie znaków ...................................................s.........................................297 9.2.3. Szyfrowanie tekstu ...................................................s..........................................298 9.3. Parametry stosu...................................................s...................................................s.......300 9.3.1. Tworzenie ramki stosu ...................................................s....................................300 9.3.2. Przekazanie argumentów według odwołania ...................................................s..303 9.3.3. Polecenia LDS, LES, LFS, LGS i LSS ...................................................s...........305 9.3.4. Polecenie ENTER ...................................................s...........................................306 9.3.5. Polecenie LEAVE ...................................................s...........................................306 Rozdział 8. Rozdział 9.  #UGODNGTFNCRTQEGUQTÎY+PVGN8CFGOGEWORTQHGULQPCNKUV[ 9.3.6. Przekazywanie argumentów na sposób języka C...............................................307 9.3.7. Deklaracje procedur w Borland TASM ...................................................s..........309 9.3.8. Dyrektywa RETURNS (TASM) ...................................................s.....................310 9.3.9. Deklaracje procedur w Microsoft MASM ...................................................s......310 9.4. Oddzielne asemblowanie modułów ...................................................s...........................313 9.4.1. Dyrektywa PUBLIC...................................................s........................................313 9.4.2. Tworzenie programu składającego się z wielu modułów ..................................313 9.5. Tworzenie biblioteki konsolidowanej...................................................s........................315 9.6. Konwersja liczb binarnych na ASCII ...................................................s........................318 9.6.1. Procedura Writeint ...................................................s..........................................319 9.7. Konwersja ASCII na liczby binarne ...................................................s..........................320 9.7.1. Procedura Readint ...................................................s...........................................320 9.8. Pytania kontrolne ...................................................s...................................................s....323 9.9. Zadania programistyczne...................................................s...........................................325 Rozdział 10. KæIKKVCDNKEG   10.1. Składowanie ciągów w pamięci...................................................s...............................331 10.1.1. Wprowadzenie...................................................s...............................................331 10.1.2. Typy ciągów...................................................s..................................................331 10.2. Prymitywy ciągu ...................................................s...................................................s...333 10.2.1. Polecenie MOVS...................................................s...........................................336 10.2.2. Potrzeba szybkości ...................................................s........................................337 10.2.3. Polecenie CMPS...................................................s............................................338 10.2.4. Polecenie SCAS ...................................................s............................................340 10.2.5. Polecenie STOS...................................................s.............................................342 10.2.6. Polecenie LODS...................................................s............................................342 10.3. Biblioteka procedur obsługi ciągów ...................................................s........................343 10.3.1. Procedura Str_compare ...................................................s.................................344 10.3.2. Procedura Str_copy ...................................................s.......................................345 10.3.3. Procedura Str_length ...................................................s.....................................346 10.3.4. Procedura Str_getline ...................................................s....................................347 10.3.5. Procedura Readstring ...................................................s....................................348 10.3.6. Procedura Str_ucase ...................................................s......................................349 10.3.7. Procedura Writestring ...................................................s...................................349 10.3.8. Procedura Str_write...................................................s.......................................350 10.4. Program testujący bibliotekę procedur obsługi ciągów..............................................351 10.5. Pytania kontrolne ...................................................s...................................................s..353 10.6. Zadania programistyczne...................................................s.........................................355 Rozdział 11. 2TCECF[UMCOK  11.1. Podstawy pracy z dyskami...................................................s.......................................363 11.1.1. Charakterystyka fizyczna i logiczna...............................................s..................363 11.1.2. Typy dysków ...................................................s.................................................366 11.1.3. Katalog dysku...................................................s................................................367 11.1.4. Struktura katalogu ...................................................s.........................................368 11.1.5. Przykładowy katalog dyskowy...................................................s......................370 11.1.6. Tablica alokacji plików (FAT)...................................................s......................371 11.1.7. Odczyt i zapis sektorów dysku...................................................s......................372 11.2. Program wyświetlający sektory dysku ...................................................s....................374 11.3. Dekodowanie tablicy alokacji plików...................................................s......................378 11.3.1. Program wyświetlający klastry ...................................................s.....................379 11.4. Funkcje plików na poziomie systemu...................................................s......................383 11.4.1. Kody błędów DOS ...................................................s........................................384 11.4.2. Wyświetlanie komunikatów o błędach ...................................................s.........385 11.4.3. Specyfikacja pliku ...................................................s.........................................387 11.4.4. Ogon poleceń DOS...................................................s........................................387 5RKUVTGħEK  11.5. Manipulacja dyskami i katalogami ...................................................s..........................389 11.5.1. Ustawienie domyślnego dysku (0Eh)...................................................s............389 11.5.2. Uzyskanie domyślnego dysku (19h) ...................................................s.............390 11.5.3. Uzyskanie informacji o dostępnej przestrzeni dyskowej (36h) .......................390 11.5.4. Uzyskanie aktualnego katalogu (47h) ...................................................s...........390 11.5.5. Ustawienie aktualnego katalogu (3Bh) ...................................................s.........391 11.5.6. Tworzenie podkatalogu (39h) ...................................................s.......................391 11.5.7. Usunięcie podkatalogu (3Ah)...................................................s........................392 11.5.8. Uzyskanie parametrów urządzenia (44h)...................................................s......392 11.6. Pytania kontrolne ...................................................s...................................................s..396 11.7. Zadania programistyczne...................................................s.........................................398 11.7.1. Zadania wykorzystujące program Sector Display............................................399 Rozdział 12. 2TGVYCTCPKGRNKMÎY   12.1. Manipulacja plikami ...................................................s................................................403 12.1.1. Wprowadzenie...................................................s...............................................403 12.1.2. Uzyskanie lub ustawienie atrybutu pliku (43h)................................................404 12.1.3. Usunięcie pliku (41h) ...................................................s....................................405 12.1.4. Zmiana nazwy pliku (56h) ...................................................s............................405 12.1.5. Uzyskanie i ustawienie daty i czasu pliku...................................................s.....406 12.1.6. Odnalezienie pierwszego szukanego pliku (4Eh) ............................................407 12.1.7. Odnalezienie kolejnego szukanego pliku (4Fh) ...............................................407 12.1.8. Ustawienie adresu DTA (1Ah)...................................................s......................408 12.2. Zastosowanie — wyświetlenie nazw plików i informacji o dacie..............................408 12.3. Usługi wejścia-wyjścia ...................................................s............................................412 12.3.1. Tworzenie pliku (3Ch) ...................................................s..................................412 12.3.2. Otwarcie pliku (3Dh) ...................................................s....................................414 12.3.3. Zamknięcie pliku (3Eh)...................................................s.................................415 12.3.4. Odczyt z pliku lub urządzenia (3Fh) ...................................................s.............415 12.3.5. Zapis do pliku lub urządzenia (40h)...................................................s..............416 12.4. Bezpośredni dostęp do plików...................................................s.................................416 12.4.1. Przesunięcie wskaźnika pliku (42h)...................................................s..............417 12.5. Odczyt pliku bitmapowego...................................................s......................................419 12.6. Pytania kontrolne ...................................................s...................................................s..424 12.7. Zadania programistyczne...................................................s.........................................425 12.7.1. Manipulacja katalogami dyskowymi ...................................................s............427 Rozdział 13. Rozdział 14. +PVGTHGLUFQLú[MÎYY[UQMKGIQRQKQOW   13.1. Wprowadzenie ...................................................s...................................................s......431 13.1.1. Ogólne konwencje...................................................s.........................................431 13.2. Tworzenie wbudowanego kodu asemblera...................................................s..............434 13.2.1. Microsoft Visual C++...................................................s....................................434 13.2.2. Zastosowanie: szyfrowanie pliku ...................................................s..................437 13.3. Konsolidacja z programami C++...................................................s.............................439 13.3.1. Konsolidacja z Borland C++ ...................................................s.........................440 13.3.2. Przykład: program ReadSector...................................................s......................441 13.3.3. Przykład: duże liczby losowe...................................................s........................446 13.3.4. Konsolidacja z Visual C++ w trybie chronionym............................................448 13.4. Pytania kontrolne ...................................................s...................................................s..454 13.5. Zadania programistyczne...................................................s.........................................456 6GOCV[FNCCCYCPUQYCP[EJRTQITCOKUVÎY Eúħè+   14.1. Wskaźniki i pośredniość ...................................................s..........................................459 14.1.1. Polecenie LEA...................................................s...............................................459 14.1.2. Skoki i wywołania pośrednie ...................................................s........................460 14.1.3. Tablica wskaźników 32-bitowych...................................................s.................462  #UGODNGTFNCRTQEGUQTÎY+PVGN8CFGOGEWORTQHGULQPCNKUV[ 14.2. Sterowanie procesorem i porty wejścia-wyjścia...................................................s......462 14.2.1. Polecenia ESC, HLT, LOCK i WAIT...................................................s...........462 14.2.2. Porty wejścia-wyjścia...................................................s....................................463 14.2.3. Polecenia do manipulacji znacznikami ...................................................s.........465 14.3. Definiowanie segmentów ...................................................s........................................466 14.3.1. Jawne definicje segmentów...................................................s...........................467 14.3.2. Składnia definicji segmentu ...................................................s..........................468 14.3.3. Dyrektywa ASSUME...................................................s....................................470 14.3.4. Zastępowanie segmentów ...................................................s.............................471 14.3.5. Łączenie segmentów ...................................................s.....................................472 14.4. Dynamiczna alokacja pamięci ...................................................s.................................473 14.4.1. Modyfikacja bloków pamięci...................................................s........................473 14.4.2. Alokacja pamięci...................................................s...........................................474 14.4.3. Zwolnienie alokowanej pamięci...................................................s....................474 14.5. Struktura pliku wykonywalnego...................................................s..............................475 14.5.1. Programy COM ...................................................s.............................................476 14.5.2. Programy EXE ...................................................s..............................................477 14.6. Pytania kontrolne ...................................................s...................................................s..478 14.7. Zadania programistyczne...................................................s.........................................481 6GOCV[FNCCCYCPUQYCP[EJRTQITCOKUVÎY Eúħè++   15.1. Urządzenia systemowe ...................................................s............................................483 15.1.1. Zegar czasu rzeczywistego...................................................s............................483 15.1.2. Procesor...................................................s...................................................s......485 15.1.3. Obliczanie czasu wykonania rozkazów...................................................s.........485 15.1.4. Odczyt z pamięci...................................................s...........................................486 15.2. Kodowanie poleceń (procesory 8086 i 8088) ...................................................s..........488 15.2.1. Rozkazy jednobajtowe ...................................................s..................................489 15.2.2. Operandy bezpośrednie ...................................................s.................................490 15.2.3. Rozkazy trybu rejestru ...................................................s..................................490 15.2.4. Rozkazy trybu pamięci...................................................s..................................491 15.3. Obsługa przerwań ...................................................s...................................................s.494 15.3.1. Przerwania sprzętowe...................................................s....................................496 15.3.2. Rozkazy sterowania przerwaniami...................................................s................498 15.3.3. Tworzenie procedury obsługi przerwania ...................................................s.....498 15.3.4. Programy rezydujące w pamięci ...................................................s...................501 15.3.5. Zastosowanie: program No_Reset ...................................................s................502 15.4. Definiowanie liczb rzeczywistych ...................................................s...........................506 15.4.1. Dyrektywa Define Doubleword (DD)...................................................s...........507 15.4.2. Dyrektywa Define Quadword (DQ)...................................................s..............507 15.4.3. Dyrektywa Define Tenbyte (DT) ...................................................s..................507 15.5. Polecenia zmiennoprzecinkowe...................................................s...............................508 15.5.1. Koprocesor zmiennoprzecinkowy...................................................s.................508 15.5.2. Formaty rozkazów...................................................s.........................................509 15.5.3. Przykład — obliczanie wyrażenia...................................................s.................511 15.5.4. Zastosowanie: program do obliczania wynagrodzeń .......................................513 15.6. Pytania kontrolne ...................................................s...................................................s..515 15.7. Zadania programistyczne...................................................s.........................................516 2TGYQFPKMRQNKEDCEJFYÎLMQY[EJKUGUPCUVMQY[EJ   A.1. Liczby dwójkowe...................................................s...................................................s...521 A.1.1. Przykłady dodawania ...................................................s.....................................521 A.1.2. Konwersja liczb dwójkowych na dziesiętne ...................................................s..522 A.1.3. Konwersja liczb dziesiętnych na dwójkowe ...................................................s..524 Rozdział 15. Dodatek A 5RKUVTGħEK  A.2. Liczby szesnastkowe...................................................s.................................................525 A.2.1. Konwersja liczb dwójkowych na szesnastkowe................................................525 A.2.2. Konwersja liczb szesnastkowych na dziesiętne ................................................526 A.2.3. Wartości poszczególnych cyfr szesnastkowych................................................527 A.2.4. Konwersja liczb dziesiętnych na szesnastkowe ................................................527 A.3. Operacje arytmetyczne...................................................s..............................................528 A.3.1. Liczby ze znakiem i bez znaku...................................................s.......................528 A.3.2. Notacja z uzupełnieniem dwójkowym ...................................................s...........528 A.3.3. Odejmowanie liczb dwójkowych ...................................................s...................530 A.3.4. Dodawanie i odejmowanie liczb szesnastkowych.............................................530 A.4. Pytania kontrolne ...................................................s...................................................s...531 A.5. Odpowiedzi na pytania kontrolne ...................................................s.............................533 7ľ[EKGPCTúFKC GDWI   B.1. Wprowadzenie do programu Debug ...................................................s.........................535 B.2. Podsumowanie poleceń programu Debug...................................................s.................537 B.2.1.Parametry poleceń ...................................................s...........................................538 B.3. Omówienie wszystkich poleceń programu Debug...................................................s....540 B.3.1. Pomoc (?)...................................................s...................................................s.....540 B.3.2. Polecenie A (asembluj)...................................................s...................................540 B.3.3. Polecenie C (porównaj) ...................................................s..................................541 B.3.4. Polecenie D (zrzut) ...................................................s.........................................541 B.3.5. Polecenie E (wprowadź)...................................................s.................................543 B.3.6. Polecenie F (wypełnij)...................................................s....................................543 B.3.7. Polecenie G (uruchom)...................................................s...................................543 B.3.8. Polecenie H (operacje arytmetyczne na liczbach szesnastkowych) ..................544 B.3.9. Polecenie I (wprowadź) ...................................................s..................................544 B.3.10. Polecenie L (załaduj) ...................................................s....................................544 B.3.11. Polecenie M (przenieś) ...................................................s.................................545 B.3.12. Polecenie N (nazwij) ...................................................s....................................545 B.3.13. Polecenie P (wykonaj) ...................................................s..................................546 B.3.14. Polecenie Q (wyjdź) ...................................................s.....................................546 B.3.15. Polecenie R (rejestr) ...................................................s.....................................547 B.3.16. Polecenie S (szukaj)...................................................s......................................548 B.3.17. Polecenie T (śledź) ...................................................s.......................................548 B.3.18. Polecenie U (deasembluj)...................................................s.............................548 B.3.19. Polecenie W (zapisz) ...................................................s....................................549 B.4. Domyślne segmenty ...................................................s..................................................549 B.5. Użycie skryptów w programie Debug...................................................s.......................550 /KETQUQHV QFG8KGY   C.1. Wprowadzenie...................................................s...................................................s........553 C.2. Wyrażenia ...................................................s...................................................s..............553 C.3. Polecenia klawiszowe ...................................................s...............................................555 C.4. Sterowanie wykonaniem programu...................................................s...........................556 C.5. Kontrola i modyfikacja danych...................................................s.................................556 C.5.1. Kontrola i modyfikacja danych oraz wyrażeń...................................................s556 C.5.2. Kontrola zmiennych w czasie wykonywania programu....................................558 C.5.3. Bezpośrednie wyjście komunikatów do pliku i drukarki ..................................558 C.6. Krótki przewodnik po programie CodeView...................................................s............558 Dodatek B Dodatek C Dodatek D $QTNCPF6WTDQ GDWIIGT   D.1. Przygotowywanie programów do debugowania...................................................s.......561 D.2. Wybrane opcje wiersza poleceń...................................................s................................561  #UGODNGTFNCRTQEGUQTÎY+PVGN8CFGOGEWORTQHGULQPCNKUV[ D.3. Śledzenie programów...................................................s................................................562 D.3.1. Okno Stack (View, Stack) ...................................................s..............................562 D.3.2. Okno Execution History (View, Execution) ...................................................s..562 D.3.3. Menu Run ...................................................s...................................................s....562 D.4. Punkty kontrolne...................................................s...................................................s....562 D.5. Wyrażenia asemblera ...................................................s................................................564 D.6. Kontrola i modyfikacja danych...................................................s.................................564 D.6.1. Okno Variables (View, Variables) ...................................................s.................564 D.6.2. Okno Watch (View, Watches)...................................................s........................565 D.6.3. Zrzut pamięci...................................................s..................................................566 D.6.4. Okno Inspector ...................................................s...............................................566 D.6.5. Okno dialogowe Evaluate, Modify ...................................................s................567 D.7. Konfiguracja programu Turbo Debugger ...................................................s.................567 2TGYQFPKMRQRT[MđCFQY[EJRTQITCOCEJ   E.1. Informacje o dołączonych do książki plikach ...................................................s...........569 E.2. Zawartość pliku MACROS.INC ...................................................s...............................571 E.3. Procedury w bibliotece konsolidowanej...................................................s....................572 E.4. Przykładowe programy z poszczególnych rozdziałów ................................................574 GUVCYTQMCÎYRTQEGUQTC+PVGN  F.1. Wprowadzenie ...................................................s...................................................s........577 F.1.1. Znaczniki...................................................s...................................................s......577 F.1.2. Opisy rozkazów i zastosowane formaty...................................................s..........578 F.2. Zestaw rozkazów ...................................................s...................................................s....579 2TGTYCPKC$+15K 15   G.1. Ogólna lista przerwań ...................................................s...............................................605 G.2. Funkcje przerwania 21h (usługi DOS) ...................................................s.....................607 G.3. Funkcje przerwania 10h (obsługa grafiki) ...................................................s................610 G.4. Funkcje przerwania 16h (klawiatura) ...................................................s.......................612 -QF[#5 ++KMQF[MNCYKU[   H.1. Znaki sterujące ASCII...................................................s...............................................613 H.2. Kombinacje Alt-klawisz ...................................................s...........................................614 H.3. Kody klawiszy ...................................................s...................................................s.......615 H.3.1. Klawisze funkcyjne ...................................................s........................................615 H.3.2. Inne klawisze specjalne ...................................................s..................................615 H.4. Normalne i rozszerzone znaki ASCII ...................................................s.......................616 5MQTQYKF   Dodatek E Dodatek F Dodatek G Dodatek H 5RKUVTGħEK  2QFKúMQYCPKC Gorące podziękowania przekazuję redaktorce w wydawnictwie Prentice Hall — Laurze Steele — która była moim przewodnikiem w czasie piszania tej książki. Dziękuję także Johnowi Griffiniowi oraz Ronowi Harrisowi, którzy pracują jako redaktorzy w Macmillan Publishing. Moje specjalne podziękowania i wdzięczność przekazuję trzem profesorom. Są to: Gerald Calhill z Antelope Valley Collage, który dokonał wielu cennych poprawek, Tim Downey z Florida Internation University, który podzielił się ze mną cennymi koncepcjami na temat architektury komputerów, oraz James Brink z Pacific Lutheran University, który utworzył świetną bibliotekę konsolidowaną z programami pracujzącymi w płaskim trybie pamięci. Microsoft pozwolił na dołączenie do książki swojego Macro Assemblera za umiarko- waną cenę. 1UQD[RQOCICLæEGYY[FCPKWVGLMUKæľMK Bardzo dziękuję następującym osobom: Donnie Sullivan, menedżerowi projektu w Prentice Hall, Rayowi Robinsonowi, dyrektorowi projektu i Kelly Dobbs, kierownikowi projektu (obie osoby z D G Limited, LLC) za doskonałą pomoc w czasie przygotowywania tej książki do druku. Michael Brumitt z tej samej firmy zajął się korektą tej książki. David Irvine wykonał świetną pracę, przygotowując wszystkie ilustracje i wiele tabel. Za korektę końco- wego rękopisu odpowiedzialni byli także Bill Dever, Alejandro Ferro i Raymond Lim. 4GEGPGPEK  Kathy Blicharz (Pima Community College);  Patricia Nettnin (Finger Lakes Community College);  Michael J. Walron, Barry Brosch, Bruce DeSautel i Richard Whitze (Miami-Dade Community College);  Richard A. Beebe (Simpson College);  John V. Erhart i Gonshin Liu (University of Bridgeport);  S.K. Sachdev (Eastern Michigan University);  Douglas W. Knight (University of Southern Colorado);  Don Retzlaff (University of North Texas);  Robert Galivan, konsultant w zakresie oprogramowania;  George Kamenz, świetny programista, który przeczytał ręzkopis tej książki i przedstawił wiele cennych sugestii;  Diego Escala napisał wspaniały program do przeglądaniaz plików bitmapowych z rozdziału 12. Chciałbym także podziękować setkom studentów z Miami-Dade Community College, którzy w latach 1990 – 99 wykazali wiele determinacji ucząc się z tej książki, i którzy często prze- kraczali oczekiwania wykładowców. Rozdział 12. 2TGVYCTCPKGRNKMÎY /CPKRWNCELCRNKMCOK 9RTQYCFGPKG W poprzednim rozdziale omówiono sposoby organizacji plików i katalogów na dysku. Teraz nadszedł czas na przedstawienie wywołań funkcji służących do pracy z plikami. W celu uzyskania dostępu do plików i urządzeń DOS stosuje technikę zapożyczoną z systemu operacyjnego UNIX, a mianowicie uchwyty. W większości przypadków uchwyty odnoszą się zarówno do pl
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Asembler dla procesorów Intel. Vademecum profesjonalisty
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: