레지스터
CPU에서 사용하는 고속의 기억장치. CPU가 연산을 수행하기 위해 메모리에 있는 데이터를
레지스터로 가지고 오고 연산중에도 레지스터에 데이터를 저장함
IA - 32 아키텍처의 9개 범용 레지스터
EAX (Extended Accumulator Register)
곱셈과 나눗셈을 해주며 함수의 반환값을 저장함.
EBX (Extended Base Register)
ESI나 EDI와 결합해 인덱스에 사용됨
ECX (Extended Data Register)
EAX와 같이 사용되며 부호 확장 명령 등에 활용됨
ESI (Extended Source Index)
데이터를 복사하거나 조작할때 소스 데이터 주소가 저장된다. (C언어의 포인터 변수라고 생각하면 편할듯 물론 둘은 다르다) 얘가 가리키는 주소에 있는 데이터를 EDI 레지스터가 가리키는 주소로 복사하는 용도로 많이 사용됨.
EDI (Extended Destination Index)
복사 작업을 할때 목적지 주소가 저장됨.
EBP (Extended Base Pointer)
스택 프레임의 시작 주소를 저장함.
살아있는동안 값은 변하지 않고 죽으면 예전걸 재탕함.
ESP (Extended Stack Pointer)
EBP랑 비슷한데 끝 주소를 저장함.
EIP (Extended Instruction Pointer)
명령어가 저장된 메모리 주소가 저장됨
세상에.. 뭔가 많다.. 이름도 비슷하고
일단 최대한 비슷한것끼리 모아보면
EAX, ECX 곱셈 나눗셈을 해줌
EBP, ESP 스텍 프레임의 시작, 끝 주소를 저장함.
결론적으로 EAX, ECX 곱셈 나눗셈을 해주는 암산 빠른 친구 (이 비유는 실제 기능과는 거리가 있습니다. 외우기 쉽게 하려는 거지..)
EBP, ESP 포인터니까 주소를 가리키니 주소를 가리킴
모든 저작권은 이 책의 원작자이신 조성문 작가님께 있음을 밝힙니다. 전 그냥 제가 다시 보려고 정리해두고 사족을 붙힌 겁니다.