0% found this document useful (0 votes)
47 views58 pages

ARM Instruction Set: Load Store Instructions

The document summarizes ARM load/store instructions using register indirect and register relative addressing modes. It provides examples of instructions like LDR, STR, LDRH, STRH, LDRSH, STRSH, LDRB, STRB, LDRSB, STRSB along with the register values, memory addresses and contents before and after instruction execution. Register indirect addressing uses a base register and offset to calculate the effective memory address, while register relative addressing uses offset from the base register as effective address.

Uploaded by

Tanmayi Tanu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views58 pages

ARM Instruction Set: Load Store Instructions

The document summarizes ARM load/store instructions using register indirect and register relative addressing modes. It provides examples of instructions like LDR, STR, LDRH, STRH, LDRSH, STRSH, LDRB, STRB, LDRSB, STRSB along with the register values, memory addresses and contents before and after instruction execution. Register indirect addressing uses a base register and offset to calculate the effective memory address, while register relative addressing uses offset from the base register as effective address.

Uploaded by

Tanmayi Tanu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 58

ARM Instruction Set

__________________________________________________________________________
Name: B.Tanmayi Roll Number:AM.EN.U4ECE17013
___________________________________________________________________________

Load Store Instructions


Register Indirect Addressing
• Syntax:
– LDR {<condition>} {<size>} Rd, <Rn>

• STR {<condition>} {<size>} Rd, <Rn>


Variables
Rd R1 =
Rn R2 = 0x4000_0008
Memory Address 0x4000_0008
Memory Content 0x1516_7879

1. LDR R1, [R2] = 0x 4000_0008


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 1 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Memory Address Memory Content
0x4000_0000 0x1234_5678
0x4000_0004 0xAABB_CCDD
0x4000_0008 0x1516_7879
0x4000_000C 0x55AA_00FF
0x4000_0010 0xCCDD_EEFF
DST DST Value
Register
R1 0x1516_787
9

Base Register Base Address


R2 0x4000_0008
Before Execution
2. STR R1, [R2] = 0x 4000_0004
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Memory Address Memory Content
0x4000_0000 0x1234_5678
0x4000_0004 0xAABB_CCDD
0x4000_0008 0x1516_7879
0x4000_000C 0x55AA_00FF
0x4000_0010 0xCCDD_EEFF
Memory Content
Address
0x 0x4000_000
4

SRC Register SRC Content


R1 0xAABB_CCDD
Before Execution

Variables
Rd
Rn 0x 4000_0004
Memory Address 0x 4000_0004
Memory Content 0xAABB_CCDD

3. LDRH R1, [R2] = 0x 4000_0004


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0
Memory Address Memory Content
0x 4000_0004 0xAABB_CCDD
0x 0x
0x 0x
0x 0x
0x 0x
DST DST Value
Register
R1 0x0000CCDD

Base Register Base Address


R2 0x4000_0004
Before Execution
4. STRH R1, [R2] = 0x 4000_0004
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0
Memory Address Memory Content
0X4000_0004 0XAABB_CCDD

Memory Content
Address
0XAABB_CC
0X4000_000 DD
4

SRC Register SRC Content


R1 0x0000_CCDD
Before Execution

Variables
Rd
Rn
Memory Address
Memory Content
5. LDRSH R1, [R2] = 0x
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0
Memory Address Memory Content

0x4000_0010 0xCCDD_EEFF
DST DST Value
Register
R1 0xEEFF
Base Register Base Address
R2 0x4000_0010
Before Execution

6. STRSH R1, [R2] = 0x


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0
Memory Address Memory Content

0x4000_0010

Memory Content
Addr
0x1111_EEF
0x4000_001 F
0

SRC Register SRC Content


R1 0xCCDD_EEFF
Before Execution

Variables
Rd
Rn
Memory Address
Memory Content

7. LDRB R1, [R2] = 0x


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0
Memory Address Memory Content
0x4000_0010 0xFFEE_2233
0x 0x
0x 0x
0x 0x
0x 0x
DST DST Value
Register
R1 0x0000_003
3

Base Register Base Address


R2 0x4000_0010
Before Execution

8. STRB R1, [R2] = 0x


3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0
Memory Address Memory Content
0x4000_4004 0x4455_6677

Memory Content
Address
0x4000_400 0x0000_007
4 7

SRC Register SRC Content


R1 0x4455_6677
Before Execution

Variables
Rd
Rn
Memory Address
Memory Content
9. LDRSB R1, [R2] = 0x
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 1 1 0 0 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0
Memory Address Memory Content
0x4000_4004 0xFFFF_6677

DST DST Value


Register
R1 0x1111_117
7

Base Register Base Address


R2 0x4000_4004
Before Execution

10. STRSB R1, [R2] = 0x


3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0
Memory Address Memory Content
0x4000_4004 0xFFFF_CCCC

Memory Content
Address
0x4000_400 0x1111_11C
4 C

SRC Register SRC Content


R1 0x4000_4004
Before Execution
Register Relative Addressing
• Syntax:
– LDR {<condition>} {<size>} Rd, <Rn>, #offset, !

• STR {<condition>} {<size>} Rd, <Rn>, #offset, !


• Variables
Rd
Rn
Memory Address
Memory Content

11. LDR R1, [R2, #4] = 0x -- Pre-increment without write back


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

DST DST Value


Register
R1 0x

Base Register Base Address


R2
Before Execution
Base Address Offset Effective Address = Base Address + offset
0x 0x

12. STR R1, [R2, #-4] = 0x -- Pre-decrement without write back


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

Memory Content
Addr
0x 0x

SRC Register SRC Content


R1
Before Execution

Base Address Offset Effective Address = Base Address + offset


0x 0x

• Variables
Rd
Rn
Memory Address
Memory Content
13. LDR R1, [R2, #4]! = 0x -- Pre-increment with write back
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

DST DST Value


Register
R1 0x

Base Register Base Address


R2
Before Execution

Base Address Offset Effective Address = Base Address + offset


0x 0x

14. STR R1, [R2, #-4]! = 0x -- Pre-decrement with write back


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

Memory Content
Addr
0x 0x

SRC Register SRC Content


R1
Before Execution

Base Address Offset Effective Address = Base Address + offset


0x 0x

• Variables
Rd
Rn
Memory Address
Memory Content

15. LDR R1, [R2], #4 = 0x -- Post-increment with default write back


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Memory Address Memory Content

DST DST Value


Register
R1 0x

Base Register Base Address


R2
Before Execution
Base Address Offset Effective Address = Base Address + offset
0x 0x

16. STR R1, [R2], #-4 = 0x -- Post-decrement with default write back
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

Memory Content
Addr
0x 0x

SRC Register SRC Content


R1
Before Execution

Base Address Offset Effective Address = Base Address + offset


0x 0x

In the same manner, other instructions like, LDRB, STRB, LDRH, STRH,
LDRSB, STRSB, LDRSH & STRSH could be constructed.
Based Indexed Addressing
• Syntax:
– LDR {<condition>} {<size>} Rd, <Rn>, <Rm>, !

• STR {<condition>} {<size>} Rd, <Rn>, <Rm>, !


• Variables
Rd
Rn
Rm
Memory Address
Memory Content

17. LDR R1, [R2, R3] = 0x -- Pre-increment without write back


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

DST DST Value


Register
R1 0x

Base Register Base Address


R2
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x

18. STR R1, [R2, R3] = 0x -- Pre-decrement without write back


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Memory Address Memory Content

Memory Content
Addr
0x 0x

SRC Register SRC Content


R1
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x

• Variables
Rd
Rn
Rm
Memory Address
Memory Content

19. LDR R1, [R2, R3]! = 0x -- Pre-increment with write back


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content


DST DST Value
Register
R1 0x

Base Register Base Address


R2
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x

20. STR R1, [R2, R3]! = 0x -- Pre-decrement with write back


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

Memory Content
Addr
0x 0x

SRC Register SRC Content


R1
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x
• Variables
Rd
Rn
Rm
Memory Address
Memory Content

21. LDR R1, [R2], R3 = 0x -- Post-increment with write back


3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

DST DST Value


Register
R1 0x

Base Register Base Address


R2
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x
22. STR R1, [R2], R3 = 0x -- Post-decrement with write back
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

Memory Content
Addr
0x 0x

SRC Register SRC Content


R1
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x

In the same manner, other instructions like, LDRB, STRB, LDRH, STRH,
LDRSB, STRSB, LDRSH & STRSH could be constructed.

Based with scaling addressing


• Syntax:
– LDR {<condition>} {<size>} Rd, <Rn>, <Rm>, <SHIFT Method> !

• STR {<condition>} {<size>} Rd, <Rn>, <Rm>, <SHIFT Method>!


• Variables
Rd
Rn
Rm
Memory Address
Memory Content

23. LDR R1, [R2, R3, LSL, #2] = 0x -- Pre-increment without write back
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

DST DST Value


Register
R1 0x

Base Register Base Address


R2
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x
After Shifting
0x

24. STR R1, [R2, R3, LSL, #2] = 0x -- Pre-decrement without write back
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

Memory Content
Addr
0x 0x
SRC Register SRC Content
R1
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x
After shifting

• Variables
Rd
Rn
Rm
Memory Address
Memory Content

25. LDR R1, [R2, R3, LSR, #3]! = 0x -- Pre-increment with write back
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Memory Address Memory Content

DST DST Value


Register
R1 0x

Base Register Base Address


R2
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x
After Shifting
0x

26. STR R1, [R2, R3, LSR, #3]! = 0x - Pre-decrement with write back
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

Memory Content
Addr
0x 0x

SRC Register SRC Content


R1
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x
After shifting

• Variables
Rd
Rn
Rm
Memory Address
Memory Content

27. LDR R1, [R2], R3, ASR #2 = 0x -- Post-increment with write back
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

DST DST Value


Register
R1 0x

Base Register Base Address


R2
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x
After Shifting
0x

28. STR R1, [R2], R3, ASR, #4 = 0x -- Post-decrement with write back
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

Memory Content
Addr
0x 0x
SRC Register SRC Content
R1
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x
After shifting

• Variables
Rd
Rn
Rm
Memory Address
Memory Content

29. LDRSH R1, [R2], R3, ASR #2 = 0x -- Post-increment with write back
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Memory Address Memory Content

DST DST Value


Register
R1 0x

Base Register Base Address


R2
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x
After Shifting
0x

30. STRSH R1, [R2], R3, ASR, #4 = 0x -- Post-decrement with write back
3 3 2 2 2 22 22 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 43 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Memory Address Memory Content

Memory Content
Addr
0x 0x

SRC Register SRC Content


R1
Before Execution

Base Address Index Effective Address = Base Address + index


0x 0x
After shifting
Data Processing Instructions
• Logical AND
Syntax:
– AND {<condition>} {<S>} Rd, <Rn>, <Operand 2>

<Operand2> 1. <#Immediate Value>


2. <Rm>, <SHIFT Method> <Shift Length>
3. <Rm>, <SHIFT Method> <Rs>

• Immediate Shift
31. AND R1, R2, #100, 4 = 0x

Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Variables Value
Rn
Operand2
Rd

• Register Shift
32. AND R1, R2, R3, LSL, #2 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


33. AND R1, R2, R3, LSL, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Logical EOR

• Immediate Shift
34. EOR R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Variables Value
Rn
Operand2
Rd

• Register Shift
35. EOR R1, R2, R3, LSR, #4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


36. EOR R1, R2, R3, ASR, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Arithmetic Subtraction

• Immediate Shift
37. SUB R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Variables Value
Rn
Operand2
Rd

• Register Shift
38. SUB R1, R2, R3, ROR, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


39. SUB R1, R2, R3, LSR, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Arithmetic Reverse Subtraction

• Immediate Shift
40. RSB R1, R2, #201, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Variables Value
Rn
Operand2
Rd

• Register Shift
41. RSB R1, R2, R3, ASR, #4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


42. RSB R1, R2, R3, LSL, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd
• Arithmetic Addition

• Immediate Shift
43. ADD R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Variables Value
Rn
Operand2
Rd

• Register Shift
ADD R1, R2, R3, ROR, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


44. ADD R1, R2, R3, LSR, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Variables Value
Rn
Operand2
Rd

• Arithmetic Addition with carry

• Immediate Shift
45. ADC R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Variables Value
Rn
Operand2
Rd

• Register Shift
46. ADC R1, R2, R3, ROR, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


47. ADC R1, R2, R3, LSR, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Shift Rm

3 3 2 2 2 22 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 65 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Arithmetic Subtraction with carry

• Immediate Shift
48. SBC R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Variables Value
Rn
Operand2
Rd

• Register Shift
49. SBC R1, R2, R3, ROR, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


50. SBC R1, R2, R3, LSR, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Arithmetic Reverse Subtract with carry

• Immediate Shift
51. RSC R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Variables Value
Rn
Operand2
Rd

• Register Shift
52. RSC R1, R2, R3, ROR, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


53. RSC R1, R2, R3, LSR, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd
9, Test Bit (TST)
• Syntax: TST (instructions which do not produce a result) <Opcode> {Cond} Rn, <Op2>

• Immediate Shift
54. TST R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Variables Value
Rn
Operand2
Rd

• Register Shift
55. TST R1, R2, ROR, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


56. TST R1, R2, LSR, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Variables Value
Rn
Operand2
Rd

• Test Equivalence (TEQ)


• Syntax:
TEQ (instructions which do not produce a result) <Opcode> {Cond} Rn, <Op2>

• Immediate Shift
57. TEQ R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Variables Value
Rn
Operand2
Rd

• Register Shift
58. TEQ R1, R2, ROR, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


59. TEQ R1, R2, LSR, R4 = 0x

Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Compare (CMP)
• Syntax: CMP (instructions which do not produce a result) <Opcode> {Cond} Rn, <Op2>

• Immediate Shift
60. CMP R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Variables Value
Rn
Operand2
Rd

• Register Shift
61. CMP R1, R2, ROR, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd
• Register Scaled Shift
62. CMP R1, R2, LSR, R4 = 0x

Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Compare Negated (CMN)


• Syntax:
CMN (instructions which do not produce a result) <Opcode> {Cond} Rn, <Op2>

• Immediate Shift
63. CMN R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Variables Value
Rn
Operand2
Rd

• Register Shift
64. CMN R1, R2, ROR, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


65. CMN R1, R2, LSR, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Logical OR
Syntax:
– ORR {<condition>} {<S>} Rd, <Rn>, <Operand 2>
• Immediate Shift
66. ORR R1, R2, #100, 4 = 0x

Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Variables Value
Rn
Operand2
Rd

• Register Shift
67. ORR R1, R2, R3, LSL, #2 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


68. ORR R1, R2, LSR, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Move (MOV)
• Syntax: MOV (single operand instructions.)<opcode>{cond}{S} Rd,<Op2>

• Immediate Shift
69. MOV R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Variables Value
Rn
Operand2
Rd

• Register Shift
70. MOV R1, R2, ROR, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


71. MOV R1, R2, LSR, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
Variables Value
Rn
Operand2
Rd

• Move Negated (MVN)


• Syntax: MVN (single operand instructions.)<opcode>{cond}{S} Rd,<Op2>
• Immediate Shift
72. MVN R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Variables Value
Rn
Operand2
Rd

• Register Shift
73. MVN R1, R2, ROR, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Register Scaled Shift


74. MVN R1, R2, LSR, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method
3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

• Bit Clear (BIC)


• Syntax: BIC<opcode>{cond}{S} Rd,Rn,<Op2>

• Immediate Shift
75. BIC R1, R2, #120, 4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

ROR N times

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Variables Value
Rn
Operand2
Rd

• Register Shift
76. BIC R1, R2, R3, LSL, #6 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd
• Register Scaled Shift
77. BIC R1, R2, R3, LSL, R4 = 0x
Variables Variables
Rd Rs/ Shift Length
Rn Immediate Value
Rm Shift Method

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Shift Rm

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0

Variables Value
Rn
Operand2
Rd

Date: Signature of the Faculty

You might also like