작성
·
1.2K
0
안녕하세요 다름이 아니라 rip 레지스터에 대해서 궁금한 게 있는데
rip 레지스터의 정의에 대해서 검색을 하니
1. 현재 수행 중인 명령의 주소를 가리키는 레지스터
2. 다음 수행 명령의 주소를 가리키는 레지스터로
나와있는데 2가지 의미가 동일한 의미인 것인가요?
아무리 생각해도 1번과 2번이 동일한 의미로 생각되지가 않습니다...
답변 2
0
안녕하세요 제가 챗GPT에 물어본 결과, 어떤 명령어를 ip가 가리키고 있다가 그 명령어가 실행된 직후에 IP가 증가하여 다음 명령어를 가리키게 됩니다. 따라서 ip는 다음에 실행할 명령어를 가리키고 있습니다.
1. 그렇다면 call이 실행됬을 때 스택에 저장되는 ret주소(xor rax, rax의 메모리 주소)와 명령어 ret의 주소와는 전혀 다른 것인가요?
2. 그리고 ret주소는 rip를 통해 알 수 있다고 하셨는데 그렇다면 rip는 왜 다음 명령어로 f11처럼 push rbp를 가리키는 것이 아니라 f10처럼 xor rax, rax를 가리키게 되는 것인가요?
항상 감사합니다! 꼭 이해를 하고 싶은 부분이라...