본문 바로가기

Reversing/▷ Study

General Purpose Register (범용 레지스터)

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에 값을 되돌려줘서 스택이 깨지지 않도록 함 




'Reversing > ▷ Study' 카테고리의 다른 글

프로그램 실행구조  (0) 2017.03.15
어셈블리와 C언어의 포인터 구문 형식  (0) 2017.03.08
Stack Frame(스택 프레임)  (0) 2017.03.08
스택(Stack) 요약  (0) 2017.03.08
리버싱 기초(레지스터)  (0) 2017.01.03