inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

스택 팝 명령어-LDP

LDP 명령어 사용예시

해결된 질문

500

채우정

작성한 질문수 5

0

LDP 명령어.PNG

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

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

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

임베디드 arm-architecture 하드웨어-해킹 cpu-architecture armv7 armv8 cortex-a

답변 2

1

김동현 (Austin Kim)

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

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

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

감사합니다.

 

0

인프런 AI 인턴

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

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

13강 프로젝트생성해보기 관련 질문

0

3

1

LPDDR4의 VDD2 / VDDQ 전원 질문

0

16

1

벅컨버터 사용 및 그라운드 분리

0

30

2

ODT_CA 셋업 관련 문의

0

28

1

CS에 관한 질문

0

18

1

[HDL 32장-2부] 참고 링크 관련

0

27

2

스택에 PUSH되는 PC 값

0

68

2

스택공간에 데이터를 저장할 떄

0

127

2

LDM

0

88

1

TRACE32 debugging

0

108

1

interrupt service

0

89

2

vbar register

0

65

1

vbar register

0

66

2

System call register

0

81

2

GIC programmer model

0

110

1

exception handler code

0

99

2

arm mode

0

125

2

exception vector table

0

80

1

exception 문제

0

91

1

exception handler 구현

0

107

2

Exception Level 설정 관련 질문

0

139

2

Current EL 관련 질문

1

190

1

강의자료 요청

0

297

2

익셉션 벡터 베이스 주소 질문

0

335

1