Page 14 - ARM 64 Bit Assembly Language
P. 14

Preface






                     This book is intended to be used in a first course in assembly language programming for
                     Computer Science (CS) and Computer Engineering (CE) students. It is assumed that students
                     using this book have already taken courses in programming and data structures, and are com-
                     petent programmers in at least one high-level language. Many of the code examples in the
                     book are written in C, with an assembly implementation following. The assembly examples
                     can stand on their own, but students who are familiar with C, C++ or Java should find the C
                     examples helpful.
                     Computer Science and Computer Engineering are very large fields. It is impossible to cover
                     everything that a student may eventually need to know. There are a limited number of course
                     hours available, so educators must strive to deliver degree programs that make a compromise
                     between the number of concepts and skills that the students learn and the depth at which they
                     learn those concepts and skills. Obviously, with these competing goals it is difficult to reach
                     consensus on exactly what courses should be included in a CS or CE curriculum.

                     Traditionally, assembly language courses have consisted of a fairly mechanistic learning of
                     a set of instructions, registers, and syntax. Partially because of this tendency, over the years,
                     Assembly language courses have been marginalized in, or removed altogether from, many CS
                     and CE curricula. The author feels that this is unfortunate, because a solid understanding of
                     assembly language leads to better understanding of higher-level languages, compilers, inter-
                     preters, architecture, operating systems, and other important CS and CE concepts.
                     One goal of this book is to make a course in assembly language more valuable by introducing
                     methods (and a bit of theory) that are not covered in any other Computer Science or Computer
                     Engineering course, while using assembly language to implement the methods. In this way,
                     it is intended that the course in assembly language goes far beyond the traditional assembly
                     language course, and once again plays an important role in the overall CS and CE curricula.



                     Choice of processor family

                     Because of their ubiquity, x86 based systems have been the platforms of choice for most
                     assembly language courses over the last two decades. This is unfortunate because, in this



                                                             xiii
   9   10   11   12   13   14   15   16   17   18   19