ARM ARM7TDMI Bedienungsanleitung

Stöbern Sie online oder laden Sie Bedienungsanleitung nach Prozessoren ARM ARM7TDMI herunter. ARM7TDMI Instruction Set Reference Benutzerhandbuch

  • Herunterladen
  • Zu meinen Handbüchern hinzufügen
  • Drucken

Inhaltsverzeichnis

Seite 1 - Reference

Department of Electrical and Computer Engineering University of Wisconsin-Madison ECE 353/315 ARM7TDMI Instruction Set Reference M

Seite 2

Page 6 3.2.10 Register Operand, Rotate Right by Register The register value is rotated right by a value contained in a register. The C flag will be

Seite 3 - Table of Contents

Page 7 3.3.3 Base register with shifted register offset [Rn, +/-<Rm>, <shift> #<shift_immediate>] memory_address = Rn +/- shifted

Seite 4

Page 8 3.4 Miscellaneous Load/Store Addressing Modes These options apply only to the LDRSB, LDRH, LDRSH, STRH instructions. There are six options tha

Seite 5 - 1 Instruction Encoding

Page 9 3.5 Memory Allocation and Operand Alignment This section presents an abridged list of the most commonly used assembler directives. Full docume

Seite 6 - 2 Conditional Execution

Page 10 numeric constants or program-relative expressions (i.e. labels). DCDU allocates without ensuring alignment. If DCDU is followed by a label tha

Seite 7 - 3.2 Shifter Operands

Page 11 3.6.4 ENTRY – Code Entry Point Syntax: ENTRY Description: The ENTRY directive indicates the point in the code where program execution should

Seite 8 - Rs 0 0 0 1 Rm

Page 12 4 Instruction Descriptions 4.1 General Information A number of ARM7TDMI instructions will not be used in conjunction with the ADuC7026 proce

Seite 9 - Rs 0 1 0 1 Rm

Page 13 4.3 ADD - Add Syntax: ADD{<cond>}{S} <Rd>, <Rn>, <shifter_operand> RTL: if(cond) Rd  Rn + shifter_operand Flags u

Seite 10 - 0 0 0 0 0 1 1 0 Rm

Page 14 4.5 B, BL – Branch, Branch and Link Syntax: B{<cond>} <target_address>, BL{<cond>} <target_address> RTL: if(cond) i

Seite 11

Page 15 4.6 BIC – Bit Clear Syntax: BIC{<cond>}{S} <Rd>, <Rn>, <shifter_operand> RTL: if(cond) Rd  Rn AND NOT shifter_oper

Seite 12

Last updated 10/8/2009 4:43 PM

Seite 13

Page 16 4.8 CMN – Compare Negative Syntax: CMN{<cond>} <Rn>, <shifter_operand> RTL: if(cond) Rn + shifter_operand Flags updated:

Seite 14 - Page 10

Page 17 4.10 EOR – Bit-wise Exclusive-OR Syntax: EOR{<cond>}{S} <Rd>, <Rn>, <shifter_operand> RTL: if(cond) Rd  Rn XOR shif

Seite 15 - Page 11

Page 18 Usage and Examples: The LDM instruction permits block moves of memory to the registers and enables efficient stack operations. The registers m

Seite 16 - 4 Instruction Descriptions

Page 19 The instructions below demonstrate a push operation followed by a pop operation assuming an empty-ascending stack. Note that by including the

Seite 17 - 4.3 ADD - Add

Page 20 4.13 LDRB – Load Register Byte Syntax: LDRB{<cond>} <Rd>, <addressing_mode> RTL: if(cond) Rd[7:0]  memory[memory_address]

Seite 18 - Page 14

Page 21 4.15 LDRSB – Load Register Signed Byte Syntax: LDRSB{<cond>} <Rd>, <addressing_mode> RTL: if(cond) Rd[7:0]  memory[memory

Seite 19 - 4.6 BIC – Bit Clear

Page 22 4.17 MLA – Multiply-Accumulate Syntax: MLA{<cond>}{S} <Rd >, <Rm>, <Rs>, <Rn> RTL: if(cond) Rd  Rn + (Rs • Rm

Seite 20 - 4.9 CMP - Compare

Page 23 4.19 MRS – Move PSR into General-Purpose Register Syntax: MRS{<cond>} <Rd >, CPSR MRS{<cond>} <Rd >, SPSR RTL: if(con

Seite 21 - 4.11 LDM – Load Multiple

Page 24 The <fields> indicate which fields of the CPSR/SPSR be written to should be allowed to be changed. This limits any changes just to the f

Seite 22 - Page 18

Page 25 4.22 MVN – Move Negative Syntax: MVN{<cond>}{S} <Rd>, <shifter_operand> RTL: if(cond) Rd  NOT shifter_operand if(S==1 and

Seite 23 - 4.12 LDR – Load Register

i Table of Contents 1 Instruction Encoding ...

Seite 24

Page 26 4.24 RSB – Reverse Subtract Syntax: RSB{<cond>}{S} <Rd>, <Rn>, <shifter_operand> RTL: if(cond) Rd  shifter_operand

Seite 25

Page 27 4.26 SBC – Subtract with Carry Syntax: SBC{<cond>}{S} <Rd>, <Rn>, <shifter_operand> RTL: if(cond) Rd  Rn - shifter_

Seite 26 - 4.18 MOV – Move

Page 28 4.28 SMULL – Signed Multiply Long Syntax: SMULL{<cond>}{S} <Rd_LSW>, <Rd_MSW>, <Rm>, <Rs> RTL: if(cond) Rd_MSW

Seite 27 - Page 23

Page 29 Usage and Examples: The STM instruction permits block moves of registers to memory and enables efficient stack operations. The registers may b

Seite 28 - 4.21 MUL – Multiply

Page 30 4.30 STR – Store Register Syntax: STR{<cond>} <Rd>, <addressing_mode> RTL: if(cond) memory[memory_address]  Rd if(writeb

Seite 29 - 4.22 MVN – Move Negative

Page 31 4.32 STRH – Store Register Halfword Syntax: STRH{<cond>} <Rd>, <addressing_mode> RTL: if(cond) memory[memory_address]  Rd

Seite 30 - 4.24 RSB – Reverse Subtract

Page 32 4.34 SWI – Software Interrupt Syntax: SWI{<cond>} <immediate_24> RTL: if(cond) R14_svc  address of next instruction after SWI i

Seite 31

Page 33 Usage and Examples: The SWP instruction exchanges a word between a register and memory. This instruction is intended to support semaphore man

Seite 32 - 4.29 STM – Store Multiple

Page 34 4.37 TEQ – Test Equivalence Syntax: TEQ{<cond>} <Rn>, <shifter_operand> RTL: if(cond) Rn XOR shifter_operand Flags update

Seite 33 - Page 29

Page 35 4.39 UMLAL – Unsigned Multiply-Accumulate Long Syntax: UMLAL{<cond>}{S} <Rd_LSW>, <Rd_MSW>, <Rm>, <Rs> RTL: if(

Seite 35 - 4.33 SUB - Subtract

Page 36 5 Pseudo-Instructions 5.1 ADR – Load Address (short-range) Syntax: ADR{cond} <Rd>, <label> Description: The ADR pseudo-instruct

Seite 36 - 4.35 SWP - Swap

Page 37 5.4 LDR – Load Register Syntax: LDR{cond} <Rd>, =<expression> LDR{cond} <Rd>, =<label-expression> Description: The L

Seite 37 - 4.36 SWPB – Swap Byte

Page 38 5.7 NOP – No Operation Syntax: NOP Description: There are numerous ways to encode a NOP (no operation) instruction for the ARM7TDMI processo

Seite 38 - 4.38 TST - Test

Page 39 5.11 RRX – Rotate Right with Extend Syntax: RRX{cond}{S} <Rd>, <Rm> Description: RRX is a synonym for the MOV instruction with an

Seite 39 - Page 35

Page 1 1 Instruction Encoding 1.1 ARM7TDMI – ARM Instructions The ARM7TDMI uses a fixed-length, 32-bit instruction encoding scheme for all ARM instr

Seite 40 - 5 Pseudo-Instructions

Page 2 1.2 ARM7TDMI – THUMB Instructions The ARM7TDMI uses a fixed-length, 16-bit instruction encoding scheme for all Thumb instructions. The Thumb i

Seite 41 - 5.4 LDR – Load Register

Page 3 3 Addressing, Operands and Directives 3.1 General Notes In general, using R15 (PC) as the destination register is not appropriate for most in

Seite 42 - 5.10 ROR – Rotate Right

Page 4 3.2.2 Register Operands The register value is used directly. The C flag is unchanged. Note that this is actually a form of the Register Opera

Seite 43 - Page 39

Page 5 3.2.6 Register Operand, Logical Shift Right by Register The register value is shifted right by a value contained in a register. The C flag wi

Kommentare zu diesen Handbüchern

Keine Kommentare