4.2.11. SRS

스택에 반환 상태를 저장합니다.

구문

SRS{addr_mode}{cond} sp{!}, #modenum
SRS{addr_mode}{cond} #modenum{!}        ; This is a pre-UAL syntax

인수 설명:

addr_mode

다음 중 하나입니다.

IA

각 전송 후에 주소를 증가시킵니다.

IB

각 전송 전에 주소를 증가시킵니다 (ARM에만 해당).

DA

각 전송 후에 주소를 감소시킵니다 (ARM에만 해당).

DB

각 전송 전에 주소를 증가시킵니다 (전체 내림차순 스택).

addr_mode가 생략된 경우 기본적으로 각 전송 후에 주소를 증가시킵니다. 스택 지향 주소 지정 모드 접미사는 Table 2.9를 참조하십시오.

cond

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

Note

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

!

선택적 접미사입니다. ! 기호가 있을 경우 최종 주소가 modenum에 의해 지정된 모드의 sp에 다시 기록됩니다.

modenum

해당 뱅크 sp가 기준 레지스터로 사용되는 모드의 번호를 지정합니다 (프로세서 모드 참조).

연산

SRS는 현재 모드의 lr과 SPSR을 modenum에 의해 지정된 모드의 sp에 들어 있는 주소와 그 다음 워드에 각각 저장하고, 경우에 따라 modenum에 의해 지정된 모드의 sp를 업데이트합니다. 이 명령어는 스택 액세스를 위한 일반적인 용도의 STM 명령어와 함께 사용할 수 있습니다 (LDM 및 STM 참조).

Note

전체 내림차순 스택의 경우에는 SRSFD 또는 SRSDB를 사용해야 합니다.

사용법

SRS를 사용하면 자동으로 선택된 스택이 아닌 다른 스택에 예외 처리기의 반환 상태를 저장할 수 있습니다.

Thumb-2EE에서는 기준 레지스터의 값이 0일 경우 실행이 HandlerBase - 4에서 NullCheck 처리기로 분기됩니다.

메모

주소가 워드로 정렬되지 않은 경우 SRS는 지정된 주소의 최하위 2비트를 무시합니다.

SRS가 생성하는 메모리의 개별 워드에 액세스하는 시간 순서는 아키텍처 면에서 정의되지 않습니다. 따라서 액세스 순서가 중요한, 메모리에 매핑된 I/O 위치에 대해서는 이 명령어를 사용하면 안 됩니다.

사용자 및 시스템 모드에서는 SPSR이 없으므로 SRS를 예상할 수 없습니다.

아키텍처

이 ARM 명령어는 ARMv6 이상에서 사용할 수 있습니다.

이 32비트 Thumb 명령어는 ARMv7-M 프로필을 제외하고 ARMv6T2 이상에서 사용할 수 있습니다.

이 명령어의 16비트 버전은 없습니다.

예제

R13_usr  EQU     16
         SRSFD   sp,#R13_usr
Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential