RealView Compilation Tools ã¢ã»ã³ãã©ã¬ã¤ã - ARM Information Center
RealView Compilation Tools ã¢ã»ã³ãã©ã¬ã¤ã - ARM Information Center
RealView Compilation Tools ã¢ã»ã³ãã©ã¬ã¤ã - ARM Information Center
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>ARM</strong> アセン ブ リ 言 語 の 記 述<br />
LDR Rd, =label の 使 用 例 : 文 字 列 のコ ピー<br />
例 2-7 は、 あ る 1 つの 文 字 列 を 別 の 文 字 列 で 上 書 きする <strong>ARM</strong> コードルーチン<br />
を 示 しています。 こ こでは、LDR 疑 似 命 令 を 使 用 し てデータ セ ク シ ョ ンか ら 2<br />
つの 文 字 列 のア ド レ ス を ロード し ます。 以 下 は 特 に 重 要 です。<br />
DCB<br />
LDR, STR<br />
DCB ディレクティブは、 ス トアする 1 バイ ト 以 上 の 値 を 定 義 し ま<br />
す。 DCB には 整 数 値 だけでな く 、 引 用 符 で 囲 んだ 文 字 列 も 使 用 で<br />
きます。 文 字 列 の 各 文 字 は、 連 続 し たバ イ ト に 配 置 さ れます。 詳<br />
細 については、 「DCB」 (ページ 7-26) を 参 照 して 下 さい。<br />
LDR 命 令 と STR 命 令 は、 ポ ス ト イ ンデ ク ス ア ド レ シングを 使 用 し<br />
て、 ア ド レ ス レジス タ を 更 新 し ます。 例 えば、 以 下 の 命 令<br />
LDRB<br />
r2,[r1],#1<br />
は、 r1 が 指 すア ド レ スの 内 容 を r2 にロード し、r1 を 1 ずつイ ン<br />
クリメントします。<br />
例 2-7 文 字 列 のコ ピー<br />
AREA StrCopy, CODE, READONLY<br />
ENTRY<br />
; Mark first instruction to execute<br />
start<br />
LDR r1, =srcstr ; Pointer to first string<br />
LDR r0, =dststr ; Pointer to second string<br />
BL strcopy ; Call subroutine to do copy<br />
stop<br />
MOV r0, #0x18 ; angel_SWIreason_ReportException<br />
LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit<br />
SVC #0x123456 ; <strong>ARM</strong> semihosting (formerly SWI)<br />
strcopy<br />
LDRB r2, [r1],#1 ; Load byte and update address<br />
STRB r2, [r0],#1 ; Store byte and update address<br />
CMP r2, #0 ; Check for zero terminator<br />
BNE strcopy ; Keep going if not<br />
MOV pc,lr ; Return<br />
AREA Strings, DATA, READWRITE<br />
srcstr DCB "First string - source",0<br />
dststr DCB "Second string - destination",0<br />
END<br />
2-42 Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0204IJ<br />
Non-Confidential