asembler dla procesorów arm. podręcznik programisty pełna wersja.pdf

(36001 KB) Pobierz
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
5
Kup książkę
Poleć książkę
6
Spis treści
3.3.
3.4.
3.5.
3.6.
Program 2.: Obliczanie silni ................................................................... 58
Program 3.: Zamiana zawartości rejestrów ............................................. 61
Wskazówki dla programistów ................................................................ 61
Ć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
Kup książkę
Poleć książkę
Spis treści
7
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
Kup książkę
Poleć książkę
8
Spis treści
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
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin