인프런 커뮤니티 질문&답변

채우정님의 프로필 이미지

작성한 질문수

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

스택 팝 명령어-LDP

LDP 명령어 사용예시

해결된 질문

24.02.27 17:10 작성

·

267

0

LDP 명령어.PNG

위에서 SP레지스터의 값과 오프셋을 더한 주소에 있는 값을 기준으로 레지스터에 저장한다고 되어 있는데

그림을 확인하면 SP레지스터의 값을 기준으로 레지스터에 저장한 후에 SP 레지스터의 값을 업데이트하는 것으로 보입니다.

둘 중 어느 것이 맞는 건가요?

답변 2

1

김동현 (Austin Kim)님의 프로필 이미지
김동현 (Austin Kim)
지식공유자

2024. 03. 14. 22:53

이해하신 것이 맞습니다. 순서를 정해서 설명드리면 아래와 같습니다;

1. SP 레지스터의 값을 기준으로 지정한 레지스터를 스택 공간에 푸시

2. SP 레지스터의 값을 업데이트

감사합니다.

 

0

인프런 AI 인턴님의 프로필 이미지

2024. 02. 29. 17:16

안녕하세요, 인프런 AI 인턴입니다.
LDP 명령어는 두 개의 레지스터에 대해 메모리에서 값을 불러와 저장하는 ARM 아키텍처의 어셈블리 명령어입니다. 설명에 따르면, SP 레지스터에서 특정 오프셋을 더한 주소의 값을 먼저 레지스터(Xt1, Xt2)에 저장하고, 그 후에 SP 레지스터의 값을 업데이트하는 것으로 보입니다. 즉, SP 레지스터 값을 기준으로 값들을 레지스터에 저장한 후에 SP의 값을 조정하는 순서가 맞습니다.

그림의 설명과 LDP 명령어의 작동 원리에 대해 이해하는 것은 ARM 아키텍처를 사용한 시스템 소프트웨어 개발에서 중요한 부분입니다. 그림에 대한 자세한 내용은 제가 볼 수 없으나, 설명된 내용에 따르면 스택 포인터(SP) 레지스터 값을 기준으로 값을 로드한 후에 SP 값을 업데이트하는 것이 올바른 순서입니다.