위 코드고
아래 결과인데\
지금 스택 안에
----------------
return address
?
?
x=3
j(=*ptr)
----------------
이렇게 있는건 알겠는데 저 물음표 안은 뭐임? 뭐가 들어가는거임?
위 코드고
아래 결과인데\
지금 스택 안에
----------------
return address
?
?
x=3
j(=*ptr)
----------------
이렇게 있는건 알겠는데 저 물음표 안은 뭐임? 뭐가 들어가는거임?
func2 디스어셈블리를 같이 보는 게 좋을 듯
하나는 ebp인것같은데 하나 더 들어갈게 뭐가 있나...??? 배운거랑 달라서 괴리감듬
64비트 시스템인 것 같은데 주소는 8바이트 int는 4바이트니까 그거 생각해야 함
스택에 할당되는 최소바이트가 4바이트야? ebp가 4바이트를 차지한다고 보면 되는건가?
64비트 시스템에서 스택 프레임을 생성한다면 ebp 역할을 rbp나 다른 64비트 레지스터가 하겠디?
*하겠지?
그치64비트니까 rbp지
그리고 rbp 사이즈는 int 사이즈의 2배
(일반적으로 사용되는 LP64/LLP64 기준)
ptr을 int 자료형으로 선언했으니 주소값단위로 변경하려면 +2씩해야되겠네 얼추 이해한듯 고마워
아키텍처에 상관없는 정수형을 원하면 uintptr_t도 생각해봐