Page 15 - ARM 64 Bit Assembly Language
P. 15

Preface

                  author’s opinion, in every respect other than ubiquity, the x86 architecture is the worst pos-
                  sible choice for learning and teaching assembly language. The newer chips in the family have
                  hundreds of instructions, and irregular rules govern how those instructions can be used. In an
                  attempt to make it possible for students to succeed, typical courses use antiquated assemblers
                  and interface with the antiquated IBM PC BIOS, using only a small subset of the modern x86
                  instruction set. The programming environment has little or no relevance to modern comput-
                  ing.

                  Partially because of this tendency to use x86 platforms, and the resulting unnecessary bur-
                  den placed on students and instructors, as well as the reliance on antiquated and irrelevant
                  development environments, assembly language is often viewed by students as very difficult
                  and lacking in value. The author believes that this situation can be remedied, and hopes that
                  this textbook helps students to realize the value of knowing assembly language. The relatively
                  simple ARM processor family was chosen in hopes that the students also learn that although
                  assembly language programming may be more difficult than high-level languages, it can be
                  mastered.

                  The recent development of very low-cost ARM based Linux computers has caused a surge of
                  interest in the ARM architecture as an alternative to the x86 architecture, which has become
                  increasingly complex over the years. This book should provide a solution for a growing need.
                  The ARM architecture is a very good choice for teaching and learning assembly language, for
                  several reasons.

                  Many students have difficulty with the concept that a register can hold variable x at one point
                  in the program, and hold variable y at some other point. They also often have difficulty with
                  the concept that, before it can be involved in any computation, data has to be moved from
                  memory into the CPU. Using a load-store architecture helps the students to more readily grasp
                  these concepts.
                  Another common difficulty that students have is in relating the concepts of an address and a
                  pointer variable. The design of the ARM architecture makes it easier for students to realize
                  that pointers are just variables that hold an address. Students who learn assembly using this
                  book will understand pointers at a fundamental level.
                  Many students also struggle with the concept of recursion, regardless of what language is
                  used. In assembly, the mechanisms involved are exposed and directly manipulated by the pro-
                  grammer. Examples of recursion are scattered throughout this textbook.

                  Some students have difficulty understanding the flow of a program, and tend to put many un-
                  necessary branches into their code. Many assembly language courses spend so much time and
                  space on learning the instruction set that they never have time to teach good programming



                                                          xiv
   10   11   12   13   14   15   16   17   18   19   20