• Obecnie brak na stanie
Asembler dla procesorów ARM
search
  • Asembler dla procesorów ARM
ID: 484518

Hohl William

Wycofany
 

Wysyłka gratis

darmowa wysyłka na terenie Polski dla wszystkich zamówień powyżej 500 PLN

 

Wysyłka tego samego dnia

Jeśli Twoja wpłata zostanie zaksięgowana na naszym koncie do godz. 11:00

 

14 dni na zwrot

Każdy konsument może zwrócić zakupiony towar w ciągu 14 dni bez zbędnych pytań

Tytuł oryginału: ARM Assembly Language: Fundamentals and Techniques
Tłumaczenie: Paweł Gonera
ISBN: 978-83-246-9319-1
Data wydania: 2014-10-10
Format: 168x237
Stron: 352


O książce

Przewodnik programisty!

Jeszcze do niedawna mało kto zdawał sobie sprawę z istnienia takich rozwiązań, jak procesory ARM. Ten stan rzeczy zmieniła inwazja urządzeń mobilnych: tabletów, smartfonów oraz platform takich jak Raspberry Pi. Przed profesjonalnymi programistami pojawiło się nowe wyzwanie — poznanie asemblera platformy ARM.

Jeżeli należysz do tej grupy, trafiłeś na świetną książkę poświęconą temu tematowi. W trakcie lektury zaznajomisz się ze sposobami reprezentacji liczb i znaków oraz modelem programowania ARM7TDMI. Następnie stworzysz swój pierwszy program z wykorzystaniem asemblera oraz poznasz dyrektywy tego języka. Dalsze rozdziały to kolejne elementy programowania w języku asembler. Adresowanie, ładowanie danych, operacje logiczne i arytmetyczne, pętle i instrukcje warunkowe to tylko niektóre z poruszanych zagadnień. Dzięki tej książce zdobędziesz też cenną wiedzę o urządzeniach peryferyjnych oraz obsłudze wyjątków. Książka jest doskonałą lekturą dla wszystkich programistów tworzących oprogramowanie dla procesorów ARM.

Dzięki tej książce:

  • poznasz język asembler dla architektury ARM
  • opanujesz dyrektywy i zasady korzystania z asemblera
  • wykonasz typowe operacje logiczne i arytmetyczne
  • z łatwością wykorzystasz typowe konstrukcje języka

Odkryj tajniki języka asembler dla procesorów ARM!


Spis treści

Wprowadzenie (11) Podziękowania (15) Informacja o oprogramowaniu (17) Autor (19) Rozdział 1. Przegląd systemów komputerowych (21)

  • 1.1. Wstęp (21)
  • 1.2. Historia architektury RISC (23)
    • 1.2.1. Początki firmy ARM (25)
    • 1.2.2. Powstanie ARM Ltd. (26)
    • 1.2.3. ARM obecnie (28)
  • 1.3. Urządzenia liczące (29)
  • 1.4. Systemy liczbowe (31)
  • 1.5. Reprezentacja liczb i znaków (34)
    • 1.5.1. Reprezentacja liczb całkowitych (34)
    • 1.5.2. Reprezentacja zmiennoprzecinkowa (37)
    • 1.5.3. Reprezentacja znakowa (39)
  • 1.6. Tłumaczenie bitów na rozkazy (39)
  • 1.7. Narzędzia (41)
  • 1.8. Ćwiczenia (43)

Rozdział 2. Model programowania ARM7TDMI (47)

  • 2.1. Wstęp (47)
  • 2.2. Typy danych (47)
  • 2.3. Tryby procesora (48)
  • 2.4. Rejestry (49)
  • 2.5. Rejestry stanu programu (51)
    • 2.5.1. Bity kontrolne (51)
    • 2.5.2. Bity trybu (51)
  • 2.6. Tabela wektorów (52)
  • 2.7. Ćwiczenia (53)

Rozdział 3. Pierwsze programy (55)

  • 3.1. Wstęp (55)
  • 3.2. Program 1.: Przesuwanie danych (56)
    • 3.2.1. Uruchamianie kodu (57)
    • 3.2.2. Sprawdzanie zawartości rejestrów i pamięci (58)
  • 3.3. Program 2.: Obliczanie silni (58)
  • 3.4. Program 3.: Zamiana zawartości rejestrów (61)
  • 3.5. Wskazówki dla programistów (61)
  • 3.6. Ćwiczenia (63)

Rozdział 4. Dyrektywy i zasady korzystania z asemblera (65)

  • 4.1. Wstęp (65)
  • 4.2. Struktura modułów języka asemblera (65)
  • 4.3. Predefiniowane nazwy rejestrów (68)
  • 4.4. Często używane dyrektywy (68)
    • 4.4.1. AREA - definicja bloku danych lub kodu (69)
    • 4.4.2. RN - definicja nazwy rejestru (70)
    • 4.4.3. EQU - definicja symbolu dla stałej numerycznej (70)
    • 4.4.4. ENTRY - deklaracja punktu wejścia (71)
    • 4.4.5. DCB, DCW i DCD - przydział pamięci i określenie zawartości (71)
    • 4.4.6. ALIGN - wyrównanie danych lub kodu do odpowiedniej granicy (72)
    • 4.4.7. SPACE - rezerwacja bloku pamięci (73)
    • 4.4.8. LTORG - przypisanie punktu startowego puli literałów (73)
    • 4.4.9. END - koniec pliku źródłowego (74)
  • 4.5. Makra (74)
  • 4.6. Pozostałe funkcje asemblera (76)
    • 4.6.1. Operacje asemblera (76)
    • 4.6.2. Literały (77)
  • 4.7. Ćwiczenia (77)

Rozdział 5. Ładowanie, zapisywanie i adresowanie (79)

  • 5.1. Wstęp (79)
  • 5.2. Pamięć (79)
  • 5.3. Ładowanie i zapisywanie - instrukcje (82)
  • 5.4. Operandy adresowania (85)
    • 5.4.1. Adresowanie preindeksowane (85)
    • 5.4.2. Adresowanie postindeksowane (86)
  • 5.5. Porządek bajtów (88)
    • 5.5.1. Zmiana porządku bajtów (89)
    • 5.5.2. Definiowanie obszarów pamięci (90)
  • 5.6. Ćwiczenia (91)

Rozdział 6. Stałe i pule literałów (95)

  • 6.1. Wstęp (95)
  • 6.2. Schemat rotacji ARM (95)
  • 6.3. Ładowanie stałych do rejestrów (98)
  • 6.4. Ładowanie adresów do rejestrów (101)
  • 6.5. Ćwiczenia (105)

Rozdział 7. Operacje logiczne i arytmetyczne (107)

  • 7.1. Wstęp (107)
  • 7.2. Znaczniki i ich wykorzystywanie (107)
    • 7.2.1. Znacznik N (108)
    • 7.2.2. Znacznik V (108)
    • 7.2.3. Znacznik Z (109)
    • 7.2.4. Znacznik C (109)
  • 7.3. Instrukcje porównania (109)
  • 7.4. Operacje przetwarzania danych (110)
    • 7.4.1. Operacje logiczne (111)
    • 7.4.2. Przesunięcia i rotacje (112)
    • 7.4.3. Dodawanie i odejmowanie (117)
    • 7.4.4. Mnożenie (119)
    • 7.4.5. Mnożenie przez stałą (120)
    • 7.4.6. Dzielenie (121)
  • 7.5. Notacja ułamkowa (122)
  • 7.6. Ćwiczenia (127)

Rozdział 8. Pętle i skoki (131)

  • 8.1. Wstęp (131)
  • 8.2. Skoki (132)
  • 8.3. Pętle (135)
    • 8.3.1. Pętle while (135)
    • 8.3.2. Pętle for (136)
    • 8.3.3. Pętle do ... while (139)
  • 8.4. Więcej na temat znaczników (139)
  • 8.5. Wykonanie warunkowe (140)
  • 8.6. Kodowanie w linii prostej (142)
  • 8.7. Ćwiczenia (143)

Rozdział 9. Tablice (145)

  • 9.1. Wstęp (145)
  • 9.2. Tablice wyszukiwania (145)
  • 9.3. Tablice skoków (149)
  • 9.4. Wyszukiwanie binarne (150)
  • 9.5. Ćwiczenia (153)

Rozdział 10. Podprogramy i stosy (157)

  • 10.1. Wstęp (157)
  • 10.2. Stos (158)
    • 10.2.1. Instrukcje LDM i STM (158)
    • 10.2.2. Stosy pełne, puste, rosnące i malejące (160)
  • 10.3. Podprogramy (162)
  • 10.4. Przekazywanie parametrów do podprogramów (163)
    • 10.4.1. Przekazywanie parametrów przez rejestry (163)
    • 10.4.2. Przekazywanie parametrów przez referencję (165)
    • 10.4.3. Przekazywanie parametrów na stosie (167)
  • 10.5. Standard ARM APCS (168)
  • 10.6. Ćwiczenia (169)

Rozdział 11. Obsługa wyjątków (173)

  • 11.1. Wstęp (173)
  • 11.2. Przerwania (173)
  • 11.3. Błędy (174)
  • 11.4. Sekwencja wyjątku w procesorze (175)
  • 11.5. Tablica wektorów (176)
  • 11.6. Handlery wyjątków (179)
  • 11.7. Priorytety wyjątków (180)
  • 11.8. Procedury obsługi wyjątków (181)
    • 11.8.1. Wyjątek Reset (181)
    • 11.8.2. Niezdefiniowana instrukcja (181)
    • 11.8.3. Przerwania (185)
    • 11.8.4. Błędy przerwania (194)
    • 11.8.5. SWI (195)
  • 11.9. Ćwiczenia (196)

Rozdział 12. Urządzenia peryferyjne z odwzorowaną pamięcią (199)

  • 12.1. Wstęp (199)
  • 12.2. LPC2104 (200)
    • 12.2.1. Układ UART (200)
    • 12.2.2. Mapa pamięci (200)
    • 12.2.3. Konfigurowanie układu UART (202)
    • 12.2.4. Zapis danych do UART (205)
    • 12.2.5. Kompletny kod (206)
    • 12.2.6. Uruchamianie aplikacji (207)
  • 12.3. Układ LPC2132 (208)
    • 12.3.1. Konwerter C/A (208)
    • 12.3.2. Mapa pamięci (210)
    • 12.3.3. Konfiguracja konwertera C/A (210)
    • 12.3.4. Generowanie fali sinusoidalnej (210)
    • 12.3.5. Kompletny kod (212)
    • 12.3.6. Uruchamianie kodu (214)
  • 12.4. Ćwiczenia (214)

Rozdział 13. THUMB (217)

  • 13.1. Wstęp (217)
  • 13.2. Instrukcje THUMB (218)
  • 13.3. Różnice pomiędzy ARM i THUMB (220)
  • 13.4. Implementacja i użycie THUMB (221)
    • 13.4.1. Modyfikacje procesora (221)
    • 13.4.2. Przełączanie się pomiędzy stanem ARM i THUMB (221)
  • 13.5. Kompilacja dla THUMB (223)
  • 13.6. Ćwiczenia (225)

Rozdział 14. Łączenie C i asemblera (227)

  • 14.1. Wstęp (227)
  • 14.2. Wstawki asemblerowe (227)
    • 14.2.1. Składnia wstawek asemblerowych (230)
    • 14.2.2. Ograniczenia działania wstawek asemblerowych (231)
  • 14.3. Asembler wbudowany (232)
    • 14.3.1. Składnia asemblera wbudowanego (234)
    • 14.3.2. Ograniczenia działania asemblera wbudowanego (234)
  • 14.4. Wywołania pomiędzy C i asemblerem (234)
  • 14.5. Ćwiczenia (236)

Dodatek A. Zbiór instrukcji ARM V4T (239) Dodatek B. Korzystanie z narzędzi Keil (339)

  • B.1. Wstęp (339)
  • B.2. Tworzenie projektu i wybór urządzenia (339)
  • B.3. Tworzenie kodu aplikacji (341)
  • B.4. Budowanie projektu i uruchamianie kodu (343)

Dodatek C. Kody znaków ASCII (345) Glosariusz (347) Odnośniki (349) Skorowidz (350)

484518

Produkty z tej samej kategorii (16)