저는 약간의 어셈블리를 배우는 초보자입니다. 함수 호출 전에 ESP 레지스터를 유지하면 더하거나 뺄 때 중요합니다. 설명하기 어려운, 다음 사항을 고려함수 호출 후에 esp를 보존하는 초보자 학습 어셈블리
mov esi, esp
sub esp, 12 // on 32bit OS this would mean that there are 3 arguments to the function
// push, function call etc
cmp esi, esp // should be the same
또는
mov esi, esp
// push, function call etc
add esp, 12
cmp esi, esp // should be the same
또한, CMP가 실패 어떤 이유로, 그것은 스택을 다시 정렬, ESP ESI를 MOV 할 안전한지?
감사
편집
: 또한 내가 어떻게 sprintf와 같은 호출에 대해이 작업을 수행 할 필요가 오지만, 메시지 박스 나를 위해 ESP를 해결하는 것? 어떤 기능이 필요하고 어떤 기능이 필요하지 않은지 어떻게 알 수 있습니까?
매우 유익한 감사합니다. – Daniel