Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CS 220 / ARM / ARM1176JZ-S Technical Reference Mmanual.pdf
Источник:
Скачиваний:
45
Добавлен:
16.04.2015
Размер:
4.47 Mб
Скачать

Introduction

Table 1-13 summarizes condition codes.

 

Table 1-13 Condition codes

 

 

Suffix

Description

 

 

EQ

Equal

 

 

NE

Not equal

 

 

HS/CS

Unsigned higher or same, carry set

 

 

LO/CC

Unsigned lower, carry clear

 

 

MI

Negative, minus

 

 

PL

Positive or zero, plus

 

 

VS

Overflow

 

 

VC

No overflow

 

 

HI

Unsigned higher

 

 

LS

Unsigned lower or same

 

 

GE

Signed greater or equal

 

 

LT

Signed less than

 

 

GT

Signed greater than

 

 

LE

Signed less than or equal

 

 

AL

Always

 

 

1.10.2Thumb instruction set summary

Table 1-14 summarizes the Thumb instruction set.

Table 1-14 Thumb instruction set summary

Operation

 

Assembler

 

 

 

Move

Immediate, update flags

MOV <Rd>, #<immed_8>

 

 

 

 

LowReg to LowReg, update flags

MOV <Rd>, <Rm>

 

 

 

 

HighReg to LowReg

MOV <Rd>, <Rm>

 

 

 

 

LowReg to HighReg

MOV <Rd>, <Rm>

 

 

 

 

HighReg to HighReg

MOV <Rd>, <Rm>

 

 

 

 

Copy

CPY <Rd>, <Rm>

 

 

 

Arithmetic

Add

ADD <Rd>, <Rn>, #<immed_3>

 

 

 

 

Add immediate

ADD <Rd>, #<immed_8>

 

 

 

 

Add LowReg and LowReg, update flags

ADD <Rd>, <Rn>, <Rm>

 

 

 

 

Add HighReg to LowReg

ADD <Rd>, <Rm>

 

 

 

 

Add LowReg to HighReg

ADD <Rd>, <Rm>

ARM DDI 0333H

Copyright © 2004-2009 ARM Limited. All rights reserved.

1-42

ID012410

Non-Confidential, Unrestricted Access

 

 

 

 

 

Introduction

 

 

 

Table 1-14 Thumb instruction set summary (continued)

 

 

 

 

 

 

Operation

 

 

Assembler

 

 

 

 

 

 

 

 

Add HighReg to HighReg

ADD <Rd>, <Rm>

 

 

 

 

 

 

 

 

Add immediate to PC

ADD <Rd>, PC, #<immed_8*4>

 

 

 

 

 

 

 

 

Add immediate to SP

ADD <Rd>, SP, #<immed_8*4>

 

 

 

 

 

 

 

 

Add immediate to SP

ADD SP, #<immed_7*4>

 

 

 

 

ADD SP, SP, #<immed_7*4>

 

 

 

 

 

 

 

 

Add with carry

ADC <Rd>, <Rs>

 

 

 

 

 

 

 

 

Subtract immediate

SUB <Rd>, <Rn>, #<immed_3>

 

 

 

 

 

 

 

 

Subtract immediate

SUB <Rd>, #<immed_8>

 

 

 

 

 

 

 

 

Subtract

SUB <Rd>, <Rn>, <Rm>

 

 

 

 

 

 

 

 

Subtract immediate from SP

SUB SP, #<immed_7*4>

 

 

 

 

 

 

 

 

Subtract with carry

SBC <Rd>, <Rm>

 

 

 

 

 

 

 

 

Negate

NEG <Rd>, <Rm>

 

 

 

 

 

 

 

 

Multiply

MUL <Rd>, <Rm>

 

 

 

 

 

 

Compare

 

Compare immediate

CMP <Rn>, #<immed_8>

 

 

 

 

 

 

 

 

Compare LowReg and LowReg, update flags

CMP <Rn>, <Rm>

 

 

 

 

 

 

 

 

Compare LowReg and HighReg, update flags

CMP <Rn>, <Rm>

 

 

 

 

 

 

 

 

Compare HighReg and LowReg, update flags

CMP <Rn>, <Rm>

 

 

 

 

 

 

 

 

Compare HighReg and HighReg, update flags

CMP <Rn>, <Rm>

 

 

 

 

 

 

 

 

Compare negative

CMN <Rn>, <Rm>

 

 

 

 

 

 

Logical

 

AND

AND <Rd>, <Rm>

 

 

 

 

 

 

 

 

XOR

EOR <Rd>, <Rm>

 

 

 

 

 

 

 

 

OR

ORR <Rd>, <Rm>

 

 

 

 

 

 

 

 

Bit clear

BIC <Rd>, <Rm>

 

 

 

 

 

 

 

 

Move NOT

MVN <Rd>, <Rm>

 

 

 

 

 

 

 

 

Test bits

TST <Rd>, <Rm>

 

 

 

 

 

 

Shift/Rotate

 

Logical shift left

LSL <Rd>, <Rm>, #<immed_5>

 

 

 

 

LSL <Rd>, <Rs>

 

 

 

 

 

 

 

 

Logical shift right

LSR <Rd>, <Rm>, #<immed_5>

 

 

 

 

LSR <Rd>, <Rs>

 

 

 

 

 

 

 

 

Arithmetic shift right

ASR <Rd>, <Rm>, #<immed_5>

 

 

 

 

ASR <Rd>, <Rs>

 

 

 

 

 

 

 

 

Rotate right

ROR <Rd>, <Rs>

 

 

 

 

 

 

Branch

 

Conditional

B{cond} <label>

 

 

 

 

 

 

 

 

Unconditional

B <label>

 

 

 

 

ARM DDI 0333H

Copyright © 2004-2009 ARM Limited. All rights reserved.

1-43

ID012410

 

Non-Confidential, Unrestricted Access

 

Introduction

 

 

 

Table 1-14 Thumb instruction set summary (continued)

 

 

 

 

 

 

Operation

 

 

Assembler

 

 

 

 

 

 

 

 

Branch with link

BL <label>

 

 

 

 

 

 

 

 

Branch, link and exchange

BLX <label>

 

 

 

 

 

 

 

 

Branch, link and exchange

BLX <Rm>

 

 

 

 

 

 

 

 

Branch and exchange

BX <Rm>

 

 

 

 

 

 

Load

 

With immediate offset

-

 

 

 

 

 

 

 

 

Word

LDR <Rd>, [<Rn>, #<immed_5*4>]

 

 

 

 

 

 

 

 

Halfword

LDRH <Rd>, [<Rn>, #<immed_5*2>]

 

 

 

 

 

 

 

 

Byte

LDRB <Rd>, [<Rn>, #<immed_5>]

 

 

 

 

 

 

 

 

With register offset

-

 

 

 

 

 

 

 

 

Word

LDR <Rd>, [<Rn>, <Rm>]

 

 

 

 

 

 

 

 

Halfword

LDRH <Rd>, [<Rn>, <Rm>]

 

 

 

 

 

 

 

 

Signed halfword

LDRSH <Rd>, [<Rn>, <Rm>]

 

 

 

 

 

 

 

 

Byte

LDRB <Rd>, [<Rn>, <Rm>]

 

 

 

 

 

 

 

 

Signed byte

LDRSB <Rd>, [<Rn>, <Rm>]

 

 

 

 

 

 

 

 

PC-relative

LDR <Rd>, [PC, #<immed_8*4>]

 

 

 

 

 

 

 

 

SP-relative

LDR <Rd>, [SP, #<immed_8*4>]

 

 

 

 

 

 

 

 

Multiple

LDMIA <Rn>!, <reglist>

 

 

 

 

 

 

Store

 

With immediate offset

-

 

 

 

 

 

 

 

 

Word

STR <Rd>, [<Rn>, #<immed_5*4>]

 

 

 

 

 

 

 

 

Halfword

STRH <Rd>, [<Rn>, #<immed_5*2>]

 

 

 

 

 

 

 

 

Byte

STRB <Rd>, [<Rn>, #<immed_5>]

 

 

 

 

 

 

 

 

With register offset

-

 

 

 

 

 

 

 

 

Word

STR <Rd>, [<Rn>, <Rm>]

 

 

 

 

 

 

 

 

Halfword

STRH <Rd>, [<Rn>, <Rm>]

 

 

 

 

 

 

 

 

Byte

STRB <Rd>, [<Rn>, <Rm>]

 

 

 

 

 

 

 

 

SP-relative

STR <Rd>, [SP, #<immed_8*4>]

 

 

 

 

 

 

 

 

Multiple

STMIA <Rn>!, <reglist>

 

 

 

 

 

 

Push/Pop

 

Push registers onto stack

PUSH <reglist>

 

 

 

 

 

 

 

 

Push LR and registers onto stack

PUSH <reglist, LR>

 

 

 

 

 

 

 

 

Pop registers from stack

POP <reglist>

 

 

 

 

 

 

 

 

Pop registers and PC from stack

POP <reglist, PC>

 

 

 

 

 

 

Change state

 

Change processor state

CPS <effect> <iflags>

 

 

 

 

 

 

 

 

Change endianness

SETEND <endian_specifier>

 

 

 

 

ARM DDI 0333H

Copyright © 2004-2009 ARM Limited. All rights reserved.

1-44

ID012410

 

Non-Confidential, Unrestricted Access

 

Introduction

Table 1-14 Thumb instruction set summary (continued)

Operation

 

Assembler

 

 

 

Byte-reverse

Byte-reverse word

REV <Rd>, <Rm>

 

 

 

 

Byte-reverse halfword

REV16 <Rd>, <Rm>

 

 

 

 

Byte-reverse signed halfword

REVSH <Rd>, <Rm>

 

 

 

Supervisor call

 

SVC <immed_8>

 

 

 

Software breakpoint

 

BKPT <immed_8>

 

 

 

Sign or zero extend

Sign extend 16 to 32

SXTH<Rd>, <Rm>

 

 

 

 

Sign extend 8 to 32

SXTB<Rd>, <Rm>

 

 

 

 

Zero extend 16 to 32

UXTH<Rd>, <Rm>

 

 

 

 

Zero extend 8 to 32

UXTB<Rd>, <Rm>

 

 

 

ARM DDI 0333H

Copyright © 2004-2009 ARM Limited. All rights reserved.

1-45

ID012410

Non-Confidential, Unrestricted Access

 

Соседние файлы в папке ARM