Arm Fundamentals
Arm Fundamentals
Read
ALU
Address Register
Incrementer
Address
Registers
• ARM has Load Store Architecture
NZ CV I F T Mode
Function Condition Flags Interrupt Processor Mode
Masks
Thumb State
Processor Modes
• Determines which registers are active and the
access rights to the cpsr register itself
• Privileged & Nonprivileged
– Abort
– Fast Interrupt Request
– Interrupt – User
Request –
Supervisor
– System
– Undefined
Privileged
Nonprivileged
Banked Registers
r0
r1 Banked Registers
r2
r3
r4
r5 Fast
r6 Interrupt
r7 Request
r8 r8_fiq
r9 r9_fiq
r10 r10_fiq Interrupt
r11 r11_fiq
Request Supervisor Undefined
r12 r12_fiq
r13 sp r13_fiq r13_irq r13_svc r13_undef r13_abt
r14 lr r14_fiq r14_irq r14_svc r14_undef r14_abt
r15 pc
cpsr
- spsr_fiq spsr_irq spsr_svc spsr_undef spsr_abt
Banked Registers
• Banked registers are available only when the processor
is in a particular mode
Core Instruction 58 30
Data Processing Instructions Access to barrel shifter Separate barrel and ALU
and ALU instructions
Program Status Register R/W in privileged mode No direct access
Register Usage 15 GPR + PC 8 GPR + 7 high registers
+ PC
State and Instruction Sets
Jazelle
(cpsr T = 0, J = 1)
Instruction Size 8 bit
0 0 1 0 0 0 0 1 0 10011
cpsr = nzCvqjiFt_SVC
CPSR
31 28 24 23 16 15 8 7 6 5 4 0
N Z C V J U n d e f i n e d I F T mode