티스토리 뷰
이 블로그는 단지 제 개인 공부를 정리해둔 것입니다.
제가 올린 내용 중 잘못된 부분이 있으면 지적해주시면 감사하겠습니다.
꾸벅
먼저 구글에서 검색한 레지스터에 대해 알아보겠습니다.
레지스터
레지스터 (register, resistor)는 다음을 의미한다.
위와 같다고 합니다. 처음에 뭐지라는 생각이 듭니다. 레지스터라는 것들이 총 6개가 보이는데 그 중 가장 컴퓨터 내부적으로 관련이 있을것 같은 프로세서 레지스터를 클릭해보았습니다.
프로세서 레지스터
프로세서 레지스터(영어: processor register, 순화 용어: 기록기) 또는 단순히 레지스터는 컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억 장소이다. 일반적으로 현재 계산을 수행중인 값을 저장하는 데 사용된다. 대부분의 현대 프로세서는 메인 메모리에서 레지스터로 데이터를 옮겨와 데이터를 처리한 후 그 내용을 다시 레지스터에서 메인 메모리로 저장하는 로드-스토어 설계를 사용하고 있다.
레지스터는 메모리 계층의 최상위에 위치하며, 가장 빠른 속도로 접근 가능한 메모리이다. 최신 프로세서에서 레지스터는 대개 레지스터 파일로 구현되지만, 과거에는 플립플롭, 마그네틱 코어, 박막 필름 메모리 등으로 구현되기도 했다.
라고 합니다. "계산을 수행중인 값을 저장하는데 사용된다." 단지 변수라는 생각이 듭니다.
제가 공부하는 책의 내용을 읊어 보자면 원론적으로는 실제 변수와는 개념 자체가 완전히 다릅니다. 쉽게 생각하기 위해서 변수라 생각하는 것이 좋겠습니다.
다만 CPU가 사용하는 변수여서 개수가 몇개 안되고, 그래서 메모리의 힘을 빌려서 연산을 시작하는 것이라고 생각하는 것이 좋습니다.
레지스터는 EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP로 총 8개가 있습니다.
이제 각각의 레지스터가 어떤 역할을 하는지 알아보도록 하겠습니다.
#EAX
#EDX
#ECX
for (int i =0; i<100 ; i++){
........................
}
이라 하면 ecx에 해당하는 변수는 i이고 ecx가 100부터 루트 한번을 돌때 마다 eax--을 수행하게 됩니다.
#EBX
별거 없습니다. 일반적인 데이터 레지스터로, 원래는 16비트 모드에서는 포인터로 사용했었습니다.
#ESI, EDI
쉽게 생각해자면, ESI에서 메모리를 읽어서, EDI로 복사합니다.
'Reversing > Reverse Engineering' 카테고리의 다른 글
abex’ crackme #1 (0) | 2015.12.26 |
---|---|
OllyDbg를 이용한 스택 공부하기 (0) | 2015.12.23 |
PACKING (0) | 2015.12.21 |
함수의 호출 규약 (0) | 2015.12.21 |
어셈블리어 기본 명령어 (0) | 2015.08.04 |
- Total
- Today
- Yesterday
- 팁스강좌
- Tips
- tipsoft
- 오일러 프로젝트 13
- 실행 압축
- TIPS강좌
- CBrush
- 와이어샤크
- arp
- 비손실 압축
- 오일러 프로젝트 11번
- 오일러 프로젝트 10본
- 오일러 프로젝트 14번
- 화투이미지맞추기
- 오일러 프로젝트 12번
- MFC
- 헤더
- 서버
- 키보드 메시지 이벤트
- 약수 500개
- 2의 1000승
- 패킷
- Omok
- 허프만 알고리즘
- 이미지게임
- 오일러 프로젝트 16번
- 오일러 프로젝트 8번
- tipssoft
- tipsr강좌
- 오일러
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |