EAX - 산술연산에 사용, 함수 리턴값 저장
EAX 레지스터는 산술연산에 사용함으로 덧셈,뺄셈,곱하기,나누기 등
논리연산을 수행할때 사용되는 레지스터이며
총 32bit 이며 EAX를 반으로 나누면 AX 16bit 가 됩니다.
다시 AX를 나누면 AH와 AL로 나눠지는데 각각 8bit 를 가지게 됩니다.
EBX - 베이스, 특정 메모리를 가리키는 포인터
EBX 레지스터는 메모리 주소를 저장하기 위해 사용되고
EAX와 같이 32bit 이며 EBX를 나누면 BX 16bit 가 됩니다.
또 BX를 나눠도 BH와 BL로 나뉘며 각각 8bit를 가지게 됩니다.
ECX - 카운터 코드에 사용
ECX는 반복적으로 사용되는 연산에 주로 사용됩니다. 예를 들어 if ,while 등
ECX레지스터는 값을 증가시키면서 카운트를 세는 것이 아닌 감소시키면서
카운트를 센다는 점입니다.
EDX - 데이터 레지스터 (곱셈,나눗셈)
EDX는 곱셈과 나눗셈을 통한 연산이 사용될 때 EDX 레지스터가 사용됩니다.
32bit 로 구성되어있고 나누면 DX 16bit 가 되고
또 나누면 DH,DL 각각 4bit 씩 가지게 됩니다.
EDX는 EAX와 같이 쓰입니다.
ESI - 문자열 연산의 출발지 포인터
ESI는 데이터를 변조하거나 복사할때 데이터의 주소가 저장이 됩니다.
EDI - 문자열 연산의 목적지 포인터
EDI는 복사할때 목적지의 주소가 저장됩니다.
ESP - 스택 포인터
ESP는 스택의 끝 지점의 주소를 가르킵니다.
EBP - 스택 프레임 베이스 포인터 스택의 기준 주소를 저장
EBP는 스택의 첫주소를 가르킵니다.
EIP - 다음 실행할 명령어를 가리키는 포인터
바이너리 코드 실행 중에 현재 실행되고 있는 명령의 주소를 가르킵니다.
이해가 잘 되지않는 분은 아래에 있는 그림으로 이해를...
사진 출처 : 구글
'ETC' 카테고리의 다른 글
gdb 명령어 (0) | 2017.06.27 |
---|---|
[리버싱 기초]어셈블리어 (0) | 2017.06.16 |
FTZ 서버 구축(해커스쿨) (0) | 2017.05.28 |
랜섬웨어 와 예방법 (0) | 2017.05.15 |
쉘 이란? [Linux] (0) | 2016.12.31 |