일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 재귀
- windosws wbcs
- Java
- C
- OSI
- Stack
- 큐
- War Game
- ftz level13
- c언어
- ftz
- SWiFT
- HTML
- 미로 탐색 알고리즘
- 파일 시스템
- LoB
- 정렬 알고리즘
- level13
- 두근두근 자료구조
- windosw 문자열
- 백준
- web
- 파이썬
- PHP
- 암호수학
- pwnable.kr
- 자료구조
- 시간복잡도
- System
- 스택
Archives
- Today
- Total
나의 기록, 현진록
[Reversing] 레지스터 본문
반응형
레지스터란?
메모리 계층의 최상위 계층인 기억 장소이다.
CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장한다.
레지스터는 공간은 작지만 CPU와 직접 연결되어 있으므로 연산 속도가 메모리보다 훨씬 빠르다.
레지스터의 종류
- 데이터 레지스터 : 정수 값을 저장할 수 있는 레지스터
- 주소 레지스터 : 메모리 주소를 저장하여 메모리 접근에 사용되는 레지스터
- 범용 레지스터 : 데이터와 주소를 모두 저장할 수 있는 레지스터
- 부동 소수점 레지스터 : 부동소수점 값을 저장하기 위해 사용된다.
- 상수 레지스터 : 0이나 1등 고정된 값을 저장하고 있는 레지스터
- 특수 레지스터 : 프로그램의 상태를 저장한다.
- 명령 레지스터 : 현재 실행 중인 명령어를 저장한다.
- 색인 레지스터 : 실행 중에 피연산자의 주소를 계산하는 데 사용된다.
범용 레지스터
E(약어, 접두어) - 32비트
X(접미어) - 레지스터
I(접미어) - 인덱스
P(접미어) - 포인터
- EAX = 함수의 리턴 값 저장
- EBX = ESI나 EDI와 결합하여 인덱스에 사용
- ECX = 반복 명령어 사용 시 반복 카운터 저장, 반복 횟수 지정 및 반복 작업 수행
- EDX = EAX와 같이 사용되며 부호 확장 명령 등에 활용
- ESI = 데이터 복사 및 조작시 소스 데이터 주소가 저장
- EDI = 복사 작업 시 목적지 주소가 저장
- EBP = 하나의 스택 프레임의 시작 주소가 저장, 스택 프레임이 없어지기 전까지 EBP는 불변, 없어지면 이전에 사용되던 스택 프레임을 가리킴
- ESP = 하나의 스택 프레임의 끝 지점 주소 저장, push, pop 명령어에 따라 ESP의 값이 4byte씩 변함
- EIP = 다음에 실행할 명령의 메모리 주소를 저장, 현재 명령어 실행 다음에는 EIP 레지스터에 저장된 주소에 있는 명령어를 실행. 실행하기 전 EIP에 다음 실행할 명령어 주소 값이 저장
반응형
'-Computer Theory' 카테고리의 다른 글
[Reversing] Breakpoint (0) | 2017.09.09 |
---|---|
[Reversing] API (0) | 2017.09.09 |
[Reversing] 어셈블러의 종류 (0) | 2017.09.09 |
[Reversing] OEP & EP (0) | 2017.09.09 |
[OS] 프로세서 / 프로그램 / 프로세스 (0) | 2017.07.22 |