1. CPU 레지스터 용어

범용 레지스터

- EAX(Extended Accumulator Register) : 곱셈과 나눗셈 명령에 사용. 함수의 리턴값이 저장됨

- EBX(Extended Base Register) : ESI나 EDI와 결합하여 인덱스에 사용

- ECX(Extended Counter Register) : 반복 명령어 사용시 반복 카운터로 사용. EX 레지스터에 반복할 횟수를 지정한후 사용

- EDX(Extended Data Register) : EAX와 같이 쓰이며 부호 확장 명령 등에 쓰인다.

- ESI(Extended Source Index) : 데이터 복사나 조작시 Source Data의 주소가 저장. ESI 레지스터 가르키는 주소의 데이터를 EDI 레지스터가 가르키는 주소로 복사하는 용도로 많이 사용

- EDI(Extended Destination Index) : 복사 작업시 Destination의 주소가 저장. 주로 ESI 레지스터가 가르키는 주소의 데이터가 복사

- ESP(Extended Stack Pointer) : 하나의 스택 프레임의 끝 지점 주소가 저장. 4Byte 씩 변환

- EBP(Extended Base Pointer) : 하나의 스택 프레임 시작 주소가 저장. 현재 사용되는 스택 프레임이 소멸되지 않는 동안 값은 고정되고 소멸되면 이전에 사용되던 스택 프레임을 가르킴.

명령 포인터

- EIP(Extended Instruction Pointer) : 다음 실행해야 할 명령어가 존재하는 메모리 주소가 저장.

세그먼트 레지스터

- CS(Code Segment) : 실행 가능한 명령어가 존재하는 세그먼트의 오프셋이 저장.

- DS(Data Segment) : 프로그램에서 사용되는 데이터가 존재하는 세그먼트의 오프셋이 저장.

- SS(Stack Segment) : 스택이 존재하는 세그먼트의 오프셋이 저장.

플래그 레지스터

- CF(Carry Flag) : 부호 없는 연산 결과가 용량보다 클 때 세트(1) 된다.

- ZF(Zero Flag) : 연산 결과가 0일때 세트(1)된다. 연산 결과가 0이 아닐때 해제(0) 된다.

- OF(Overflow Flag) : 부호있는 연산 결과가 용량보다 클 때 세트(1)된다.

- SF(Sign Flag) : 연산 결과가 음수가 되었을 때 세트

부동 소수점 데이터 레지스터

32bit	16bit	상위 8bit	하위 8bit
EAX	AX	AH	AL
EBX	BX	BH	BL
ECX	CX	CH	CL
EDX	DX	DH	DL

32bit	16bit
ESI	SI
EDI	DI
EBP	BP
ESP	SP