4.7.40.  __strt

이 내장 함수는 STR{size}T 형식의 어셈블리 언어 명령어를 컴파일러에서 생성하는 명령어 스트림에 삽입합니다. 이를 통해 C 또는 C++ 코드에서 STRT 명령어를 사용하여 메모리에 데이터를 저장할 수 있습니다.

구문

void __strt(unsigned int val, volatile void *ptr)

인수 설명:

val

메모리에 작성할 값입니다.

ptr

메모리에 작성할 데이터의 주소를 가리킵니다. 작성할 데이터의 크기를 지정하려면 매개변수를 적절한 정수 유형으로 캐스트합니다.

Table 4.11. __strt 내장 함수가 지원하는 액세스 너비 

명령어로드된 데이터 크기C 캐스트
STRBT부호 없는 바이트(char *)
STRHT부호 없는 하프워드(short int *)
STRT워드(int *)

오류

STRT 명령어를 지원하지 않는 타겟에 대해 컴파일하는 경우 컴파일러는 __strt 내장 함수를 인식하지 않습니다. 이 경우 컴파일러에서 경고 또는 오류를 생성합니다.

__strt 내장 함수는 부호 있는 데이터 또는 더블워드 데이터에 대한 액세스를 지원하지 않습니다. 지원되지 않는 액세스 너비를 지정하면 컴파일러에서 오류를 생성합니다.

예제

void foo(void)
{
    int loc=0xff;
    __strt(0x20, (volatile char *)loc);
}

이 코드를 컴파일하면 다음이 생성됩니다.

||foo|| PROC
    MOV      r0,#0xff
    MOV      r1,#0x20
    STRBT    r1,[r0],#0
    BX       lr
    ENDP

추가 참고

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0348AK
Non-Confidential