레지스터(Register)
범용 레지스터
CPU는 연산, 처리도 하지만, 레지스터라는 곳에 저장도 한다.
범용 레지스터란, 이름처럼 범용적으로 사용되는 레지스터들을 의미한다.
즉, CPU가 필요할 때 쓰는 레지스터라고 생각하면 된다.
보통은 상수/주소값 등을 저장할 때 주로 사용되며, 특정 어셈블러 명령어에서는
특정 레지스터를 조작하여 값을 저장 및 사용하기도 한다.
EAX, EBX, ECX, EDX
주로 산술 연산(ADD, SUB, XOR, OR 등...) 명령어에서 상수/변수 값의 저장 용도로 사용 된다.
추가적으로 ECX와 EAX는 특수한 용도로 사용되기도 한다.
EBP, ESP, ESI, EDI
주로 메모리 주소를 저장하는 포인터 용도로 사용된다.
ESP는 Stack 메모리 주소를 가리킨다. (PUSH, POP, CALL, RET)는 ESP에 영향을 주기도 한다.
EBP는 함수가 호출 되었을 때 그 순간의 ESP를 저장하고 있다가 함수를 리턴하기 직전에 다시 ESP에 값을 되돌려 준다.