다음 코드 조각과 같이 네거티브 주소 오프셋을 사용하여 스택에서 데이터를 저장하고로드 할 수 있습니까? 스택 경계의 실제 외부 ([sp, #-16]
또는 [sp, #-20]
) 인 메모리 주소에서 데이터를 쓰고 읽는 것이 안전합니까? 감사합니다.ARM 어셈블리. 네거티브 오프셋을 사용하여 스택에서 데이터 저장 및로드
stmdb sp, { r4 - r6 }
mov r4, #255
str r4, [sp, #-16]
mov r3, #127
str r3, [sp, #-20]
ldr r4, [sp, #-20]
sub sp, #12
ldmia sp, { r4 - r6 }
"할 수있는"의미가 무엇입니까? 분명히 그것은 유효한 명령 암호화이고 주어진 주소에 액세스 할 것이라는 점에서 확실히 안전 할 수 있습니다 (즉, 데이터가 손상되었는지 여부 등)는 OS/환경 및 ABI가 무엇이든지간에 (안전하고 신뢰성 있는지 여부) M- 프로파일 아키텍처와 특정 ABI의 효과적인 구술을 포함한다면 잠재적으로 CPU조차도 마찬가지입니다. – Notlikethat
현재 Android (A - profile) 코드를 작성하고 있습니다. –