HISTORY
SP
LR
PC
CURRENT PROGRAM STATUS REGISTER
Indicates Normal/Thumb Enable/disable IRQ interrupt
Instructions are executed
+70H 0 1 1 1 0 0 0 0
+70H 0 1 1 1 0 0 0 0 +
-60H 1 1 1 0 0 0 0 0
ARM7 MEMORY
32 BIT DATA BUS
0 – Starting Address
1003 73 1003 69
1002 42 1002 5A
1001 5A 1001 42
1000 69 1000 73
R0=R1+R2
Conditional execution of every instructions
ARM7 Instruction-Features
Arithmetic Instructions
Types of Instructions
Compare,
Compare
negated, Test,
Test equal Compare Instructions
Base
Offset (can go up to 4kB)
Auto Indexed Mode
R2=mem32[r0]
R0=r0+4;
R3 =mem32[r0]
R0=R0+4
R4=mem32[r0] so on
Multiple Register Transfer
Unconditional
Jump
Conditional Branches
BEQ BNE
BPL BMI
BGT BLT
BGE BLE
Conditional Branch - Example
MOV R0, #0
LOOP
ADD R0,R1,#1
Conditional execution not
CMP R0,#10 only for Branch, for all
instructions in ARM
BNE LOOP
Do the code for the high level language
Statements
Subroutine call