General Purpose Registers

Register

Description

EAX (Extended Accumulator Register)

산술(덧셈, 곱셈, 나눗셈 등), 논리 연산을 수행할 때 사용되며 함수의 반환값이 이 레지스터에 저장됨

EBX (Extended Base Register)

메모리 주소를 저장하기 위한 용도로 사용됨

ECX (Extended Counter Register)

반복 작업 시(for, while 등) 반복할 횟수가 저장됨

EDX (Extended Data Register)

EAX 레지스터와 같이 쓰이고, 부호 확장 명령이나 큰 수의 곱셈 또는 나눗셈 등의 연산이 이루어질 때 EDX 레지스터가 사용됨

EBP (Extended Base Pointer)

함수 스택의 가장 바닥 주소를 담고 있음

ESP (Extended Stack Pointer)

스택의 가장 위를 가리킴(주소를 담고 있음)

ESI (Extended Source Index)

데이터를 조작하거나, 복사할 때 데이터의 주소가 저장됨

EDI (Extended Destination Index)

복사할 때 목적지의 주소가 저장됨

EIP (Extended Instruction Pointer)

실행할 다음 명령의 주소를 담고 있음


Instructions

Instruction

Description

CALL (Call a Procedure)

함수 호출시 사용된다. JMP명렁어 같이 프로그램의 실행 흐름이 변경되지만 JMP명령와 다른 점은 되돌아올 리턴 어드레스(CALL 다음 명령)를 스택에 저장한다는 것이다. 되돌아올 주소를 저장하기 때문에 함수 호출 후 원래 위치로 실행 흐름을 되돌릴 수 있다.

RET (Return)

ESP 레지스터가 가리키는 값을 EIP 레지스터에 저장한다.


References