![Intel ARM Cortex-A9 Скачать руководство пользователя страница 3](http://html1.mh-extra.com/html/intel/arm-cortex-a9/arm-cortex-a9_introduction-manual_2073156003.webp)
I
NTRODUCTION TO THE
ARM
®
P
ROCESSOR
U
SING
I
NTEL
FPGA T
OOLCHAIN
For Quartus Prime 16.1
The CPSR register has the following contents:
• Condition Code flags which are set based on the results of a previous operation. Most ARM instructions can
be executed conditionally based on the values of these flags:
–
Negative (N) - set to 1 if the result is negative; otherwise, cleared to 0
–
Zero (Z) - set to 1 if the result is 0; otherwise, cleared to 0.
–
Carry (C) - set to 1 if a carry-out results from the operation; otherwise, cleared to 0.
–
Overflow (V) - set to 1 if arithmetic overflow occurs; otherwise cleared to 0.
• Interrupt-disable bits, I and F, where
–
I = 1 disables the IRQ interrupts
–
F = 1 disables FIQ interrupts
• Thumb bit, where
–
T = 0 indicates ARM execution
–
T = 1 indicates Thumb execution
• Processor mode bits which identify the mode in which the processor is operating, as explained in Section 9.
For some registers, there are duplicate registers, called
banked
registers, for saving the contents of primary registers
when various types of interrupts occur, as discussed in Section 10.
4
Instruction Sets
The ARM Cortex-A9 processor can execute instructions in three different instruction sets, known as ARM, Thumb
and Thumb-2.
The ARM set is the most powerful. All instructions are 32 bits long. The instructions are stored in memory in
word-aligned manner.
The Thumb set is a smaller version, where the instructions are provided in a format that uses only 16 bits. This
usually results in smaller memory requirements, which can be useful in embedded applications.
The Thumb-2 set includes both 16- and 32-bit instructions. Its functionality is almost identical to that of the ARM
instruction set.
In this tutorial we will deal only with the ARM instruction set. We should note that there exists a
Unified Assembler
Language (UAL)
, which provides a common syntax for ARM and Thumb instructions. It supersedes the previous
versions of both the ARM and Thumb assembler languages. We will use UAL in this tutorial.
Intel Corporation - FPGA University Program
November 2016
3