4.2.7. PLD, PLDW 및 PLI

데이터 및 명령어 사전 로드. 프로세서는 주소에서 데이터나 명령어를 곧 로드할 것이라는 신호를 메모리 시스템에 보낼 수 있습니다.

구문

PLtype{cond} [Rn {, #offset}]
PLtype{cond} [Rn, +/-Rm {, shift}]
PLtype{cond} label

인수 설명:

type

은 다음 중 하나일 수 있습니다.

D

데이터 주소

DW

쓰기를 위한 데이터 주소

I

명령어 주소

구문이 label을 지정하는 경우 typeDW일 수 없습니다.

cond

선택적 조건 코드입니다 (조건부 실행 참조).

Note

cond는 위의 IT 명령어를 통해 Thumb-2 코드에서만 사용할 수 있습니다. 이는 ARM의 무조건 명령어이며 cond를 사용해서는 안 됩니다.

Rn

메모리 주소의 기준이 되는 레지스터입니다.

offset

즉치 오프셋입니다. 오프셋이 생략되면 주소는 Rn의 값입니다.

Rm

오프셋으로 사용할 값이 포함된 레지스터입니다. Rm 은 r15이면 안 됩니다. Thumb 명령어의 경우 Rm은 r13이어서도 안 됩니다.

shift

선택적 시프트입니다.

label

프로그램 기준 식입니다. 자세한 내용은 레지스터 기준 및 프로그램 기준 식을 참조하십시오.

오프셋 범위

오프셋은 사전 로드가 발생하기 전에 Rn의 값에 적용됩니다. 이 결과는 사전 로드할 메모리 주소로 사용됩니다. 허용되는 오프셋 범위는 다음과 같습니다.

  • ARM 명령어의 경우, –4095 ~ +4095

  • Thumb-2 명령어의 경우 Rn이 r15가 아니면 –255 ~ +4095

  • Thumb-2 명령어의 경우 Rn이 r15이면 –4095 ~ +4095

어셈블러에서는 자동으로 pc를 기준으로 오프셋을 계산하며, label이 범위를 벗어날 경우 오류를 생성합니다.

레지스터 또는 시프트된 레지스터 오프셋

ARM에서는 Rn의 값에서 Rm의 값을 더하거나 뺍니다. Thumb-2에서는 Rm의 값을 Rn의 값에 더할 수만 있습니다. 이 결과는 사전 로드할 메모리 주소로 사용됩니다.

허용되는 시프트 범위는 다음과 같습니다.

  • Thumb-2 명령어의 경우, LSL #0 ~ #3

  • ARM 명령어의 경우 다음 중 하나

    • LSL #0 ~ #31

    • LSR #1 ~ #32

    • ASR #1 ~ #32

    • ROR #1 ~ #31

    • RRX

사전 로드할 주소 정렬

사전 로드 명령어에 대해서는 정렬 검사가 수행되지 않습니다.

아키텍처

ARM PLD는 ARMv5TE 이상에서 사용할 수 있고

32비트 Thumb PLD는 ARMv6T2 이상에서 사용할 수 있습니다.

PLDW는 다중 처리 확장을 구현하는 ARMv7 이상에서만 사용할 수 있습니다.

PLI는 ARMv7 이상에서만 사용할 수 있습니다.

16비트 Thumb PLD, PLDW 또는 PLI 명령어는 없습니다.

힌트 명령어 구현 여부는 옵션입니다. 두 명령어는 구현되어 있지 않은 경우 NOP로 실행됩니다.

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential