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 레지스터에 저장한다. |