push | eax 값을 스택에 저장 |
---|---|
pop | 스택 가장 맨 위에 있는 값을 eax에 저장 |
mov | 메모리나 레지스터 값을 이동, 저장 |
inc dec | inc : eax의 값 1 증가, dec : 1 감소 |
add | 레지스터나 메모리의 값을 덧셈 |
sub | 레지스터나 메모리의 값을 뺄셈 |
call | 함수 호출 |
ret | 호출 했던 지점에서 다음 지점으로 이동 |
cmp | 뒤에 오는 값 2개 비교 |
jmp | 특정 한 부분으로 분기 |
nop | 아무 동작도 수행하지 않음 |
32비트는 레지스터 이름이 E로 시작, 64비트는 R로 시작합니다.
범용 레지스터
eax | 산술 연산, 함수 반환 값 처리 시 사용 |
---|---|
ebx | 주소 지정, 산수 변수 저장 |
ecx | 반복할 때 반복 count 역할 수행 |
edx | eax를 보조, 나누기 연산을 할 때 몫은 eax 나머지는 edx에 저장 |
인덱스 레지스터
esi | 복사나 비교를 할 때 할 값의 주소 저장 |
---|---|
edi | 복사나 비교를 할 때 목적지 주소 저장 |
포인터 레지스터
EIP | 다음 실행할 명령어의 주소를 저장, 현재 명령이 끝나면 이 레지스터에 저장되있는 주소에 명령 실행 |
---|---|
ESP | Stack pointer 에 가장 최근에 저장되어 있는 공간의 주소 저장 |
EBP | Stack pointer 에 가장 처음 저장된 공간의 주소 저장 |