Asembler_dla_procesorow_ARM_Podrecznik_programisty_asarpp.pdf

(2119 KB) Pobierz
Tytuł oryginału: ARM Assembly Language: Fundamentals and Techniques
Tłumaczenie: Paweł Gonera
ISBN: 978-83-246-9319-1
© 2009 by ARM (UK).
All rights reserved.
Authorized translation from English language edition published by CRC Press, part of Taylor & Francis
Group LLC.
Polish edition copyright © 2014 by Helion S.A.
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były
kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane
z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie
ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/asarpp
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
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ę
Zgłoś jeśli naruszono regulamin