0
방금 어셈블리 레벨 프로그래밍을 배우기 시작했습니다. 스택 포인터가 스택 세그먼트의 스택 상단을 가리키는 것을 읽었습니다. 사용자가 8086의 스택 포인터에 저장된 값을 변경할 수 있습니까?어셈블리 레벨 프로그래밍에서 스택 포인터
방금 어셈블리 레벨 프로그래밍을 배우기 시작했습니다. 스택 포인터가 스택 세그먼트의 스택 상단을 가리키는 것을 읽었습니다. 사용자가 8086의 스택 포인터에 저장된 값을 변경할 수 있습니까?어셈블리 레벨 프로그래밍에서 스택 포인터
예. 예를 들어 스택 포인터 (암시 적으로 sp
/esp
/rsp
을 16/32/64 비트로 각각 변경할 수 있습니다. push
, pop
, call
또는 return
이거나 명시 적으로 다른 범용 레지스터를 변경하는 것과 같습니다.
실제로 프로그램을 분해하면 기능 시작 부분 근처에 sub esp, 4
(intel 구문)과 같은 것을 종종 볼 수 있습니다. 함수의 지역 변수를 위해 스택에 공간 (이 경우 4 바이트)을 예약하는 데 사용됩니다.
http://stackoverflow.com/questions/3384346/pointers-and-indexes-in-intel-8086-assembly – user2485710