![](https://csdnimg.cn/release/download_crawler_static/11261291/bg13.jpg)
xviiPreface
In the second edition, we focus on the Cortex-M4 microcontroller in addition
to the ARM7TDMI. While the ARM7TDMI still outsells the Cortex-M family,
we believe the Cortex-M family will soon overtake it, and in new designs this is
certainly true. The Cortex-M4 family is the rst ARM microcontroller to incor-
porate optional hardware oating-point. Chapter 9 introduces oating-point com-
putation and contrasts it with integer computation. We present the oating-point
standard of 1985, IEEE 754-1985, and the recent revision to the standard, the
IEEE 754-2008, and discuss some of the issues in the use of oating-point which
are not present in integer computation. In many of the chapters, oating-point
instructions will be included where their usage would present a difference from
that of integer usage. As an example, the oating-point instructions use a separate
register le from the integer register le, and the instructions which move data
between memory and these registers will be discussed in Chapters 3, 9, and 12.
Example programs are repeated with oating-point instructions to show differ-
ences in usage, and new programs are added which focus on specic aspects of
oating-point computation. While we will discuss oating-point at some length,
we will not exhaust the subject, and where useful we will point the reader to other
references.
The focus of the book remains on second- or third-year undergraduate students
in the eld of computer science, computer engineering, or electrical engineering.
As with the rst edition, some background in digital logic and arithmetic, high-
level programming, and basic computer operation is valuable, but not necessary.
We retain the aim of providing not only a textbook for those interested in assembly
language, but a reference for coding in ARM assembly language, which ultimately
helps in using any assembly language.
In this edition we also include an introduction to Code Composer Studio (from
Texas Instruments) alongside the Keil RealView Microcontroller Development
Kit. Appendices A and B cover the steps involved in violating just about every
programming rule, so that simple assembly programs can be run in an otherwise
advanced simulation environment. Some of the examples will be simulated using
one of the two tools, but many can be executed on an actual hardware platform,
such as a Tiva™ Launchpad from TI. Code specically for the Tiva Launchpad will
be covered in Chapter 16. In the rst edition, we included a copy of the ARM v4T
Instruction Set as Appendix A. To do so and include the ARM Thumb-2 and ARM
FPv4-SP instruction sets of the Cortex-M4 would simply make the book too large.
Appropriate references are highlighted in Section 1.7.4, all of which can be found on
ARM’s and TI’s websites.
The rst part of the book introduces students to some of the most basic ideas about
computing. Chapter 1 is a very brief overview of computing systems in general, with
a brief history of ARM included in the discussion of RISC architecture. This chap-
ter also includes an overview of number systems, which should be stressed heavily
before moving on to any further sections. Floating-point notation is mentioned here,
but there are three later chapters dedicated to oating-point details. Chapter 2 gives
a shortened description of the programmer’s model for the ARM7TDMI and the
Cortex-M4—a bit like introducing a new driver to the clutch, gas pedal, and steering
wheel, so it’s difcult to do much more than simply present it and move on. Some