Reversing/▷ Study
General Purpose Register (범용 레지스터)
Gyeongje
2017. 3. 8. 15:34
General Purpose Register 8개의 각각의 쓰임새와 특징들 (범용 레지스터 복습겸)
EAX , EBX, ECX, EDX (X자 돌림)
- 주로 산술연산에 사용
- ECX 는 반복문 명령어(LOOP)에서 반복 카운트(loop count)로 사용됨 (루프를 돌때마다 ECX를 1씩 감소시킴)
- EAX 는 일반적으로 함수 리턴값에 사용됨
EBP, ESI, EDI, ESP (X자 아닌것들)
- 주로 메모리 주소를 저장하는 포인터로 사용됨
- ESP는 스택 메모리 주소를 가리킴 (스택 메모리 관리는 프로그램에서 매우 중요하기 때문에 ESP를 다른 용도로 사용하지 말아야 함)
Stack Frame : EBP는 함수가 호출되었을때 그 순간의 ESP를 저장하고 있다가, 함수를 리턴하기 직전에 다시 ESP에 값을 되돌려줘서 스택이 깨지지 않도록 함