범용 레지스터란
- 작은 데이터의 임서저장 공간
- 연산처리 및 번지지정을 도와줌
- 컴퓨터의 장치들을 제어한다
범용 레지스터엔 총 8가지 종류 ( eax, ebx, edx, ecx, esi, edi, esp, ebp )가 있으며, 모든 범용 레지스터들은 32bit를 가집니다.
1. EAX ( Extended Accum ulator Register )
EAX 레지스터는 산술(덧셈, 곱셈, 나눗셈 등등), 논리 연산을 수행 할 때 사용되며 함수의 반환값이 이 레지스터에 저장 됩니다.
EAX 를 반으로 쪼갤 경우, AX(16bit)가 됩니다.
또 다시 AX를 반으로 쪼개면 AH, AL로 나뉘고 각자 8bit를 가지게 됩니다.
2. EBX ( Extended Base Register )
EBX 레지스터는 메모리 주소를 저장하기 위한 용도로 사용됩니다.
EBX를 반으로 쪼갤시, BX(16bit)가 됩니다. 그 BX를 또 반으로 쪼개면 BH, BL로 나뉘고 각자 8Bit를 가지게 됩니다.
- int, float값등을 저장가능
3. ECX ( Extended Counter Register )
ECX 레지스터는 반복 명령어 ( while, for 등 ) 명령어 사용 시 반복 카운터로 사용되는 레지스터 입니다.
ECX 레지스터에 반복 할 횟수를 지정하고, 반복 작업을 수행 할 때 쓰입니다.
-int 값만 저장 가능
4. EDX ( Extended Data Register )
이 EDX레지스터는 EAX레지스터와 같이 쓰이며 부호 확장 명령등에 쓰이고 큰수의 곱셈 또는 나눗셈 등의 연산이 이루어 질 때 EDX 레지스터가 사용됩니다.
32bit로 구성되어 있고, EDX를 반으로 쪼개면 DX(16bit)가 됩니다.
DX를 또 쪼개면 DH(4bit), DL(4bit)가 됩니다.
5. ESI ( Extended Source ) / EDI ( Destination Index )
ESI는 데이터를 조작하거나, 복사 할 때 데이터의 주소가 저장됩니다.
EDI는 복사 할 때 목적지의 주소가 저장됩니다.
6. ESP ( Extended Stack ) / EBP ( Extended Base Pointer )
ESP는 Stack 의 끝지점 주소를 가르키고, EBP는 Stack의 첫 시작 주소를 가르킵니다.
[출처] 범용 레지 스터(eax, ebx, ecx, edx, esi, edi, esp, ebp)|작성자 시그넷