05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Assembler syntax<br />

STRD , , [, +/-] Offset: index==TRUE, wback==FALSE<br />

STRD , , [, +/-]! Pre-indexed: index==TRUE, wback==TRUE<br />

STRD , , [], +/- Post-indexed: index==FALSE, wback==TRUE<br />

where:<br />

See St<strong>and</strong>ard assembler syntax fields on page A8-7.<br />

The first source register. This register must be even-numbered <strong>and</strong> not R14.<br />

The second source register. This register must be .<br />

Instruction Details<br />

The base register. The SP can be used. For offset addressing only, the PC can be used.<br />

However, use of the PC is deprecated.<br />

+/- Is + or omitted if the immediate offset is to be added to the base register value (add == TRUE),<br />

or – if it is to be subtracted (add == FALSE).<br />

Contains the offset that is added to the value of to form the address.<br />

The pre-UAL syntax STRD is equivalent to STRD.<br />

Operation<br />

if ConditionPassed() then<br />

EncodingSpecificOperations();<br />

offset_addr = if add then (R[n] + R[m]) else (R[n] - R[m]);<br />

address = if index then offset_addr else R[n];<br />

MemA[address,4] = R[t];<br />

MemA[address+4,4] = R[t2];<br />

if wback then R[n] = offset_addr;<br />

Exceptions<br />

Data Abort.<br />

<strong>ARM</strong> DDI 0406B Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. A8-399

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!