티스토리 뷰
x86 cpu 에서 사용되는 general purpose register 가 어떤 용도로 사용되는 가에 대한 설명
http://www.swansontec.com/sregisters.html
x86 General purpose Registers(GPRs)
- EAX - Accumulator Register
- EBX - Base Register
- ECX - Counter Register
- EDX - Data Register
- ESI - Source Index
- EDI - Destination Index
- EBP - Base Pointer
- ESP - Stack Pointer
설명
8개의 범용 registers (general purpose registers, GP register) + 1 more
- EAX : accumulator register
- accumulator 가 사용한다. 다시 얘기하면 계산할 때 쓰인다
x86 instruction set 에 있는 많은 최적화된 instructions 들이 EAX 에 data 를 넣고 계산하도록 디자인되었다. - 그리고 function call 에서 return value 를 저장할 때 쓰인다
EAX 의 값에 따라 function call 이 실패했는지, 성공했는지가 정해지고, EAX 값을 바꾸는 것으로 어떤 값이 return 되었는지도 조작할 수 있다. - EDX : data register
- 기본적으로 EAX register 의 확장이다. 곱셉이나, 나눗셈같은 좀 더 복잡한 계산을 위한 추가적인 data 를 저장하는 데 도움을 준다.
- 일반적으로 data 를 저장할 때도 쓰이지만, 주로 EAX register 와 함께 수행되 계산과 함께 쓰인다.
- ECX : count register
- loop 을 돌 때 쓰인다.
- ECX 는 언제나 감소하는 방향으로 수를 센다. 10을 세는 경우가 있다면, 10에서 시작해서 9, 8 이런 식으로 count 를 한다.
- ESI : source index
- data operation 을 위한 source index 이다.(여기서 source 는 소스코드를 이야기하는 것이 아니다. destination 의 반대되는 의미의 source 이다.)
- input data stream 의 위치를 가지고 있다.
- reading 을 위한 것이라고 보면 된다.
- EDI : destination index
- data operation 의 결과가 저장되는 곳을 가리킨다.
- writing 을 위한 것이라고 보면 된다.
- EBP : base pointer
- call stack 의 base(=bottom)을 가리킨다. ( argument 가 있다.)
- 상황에 따라 compiler 가 EBP register 를 stack frame pointer 로 사용하지 않기 위해 최적화를 사용한다. 이러면, EBP 는 free 되고 다른 GP register 처럼 사용할 수 있다.
- ESP : stack pointer
- function call 과 stack 작업을 위해 쓰인다.
- call stack frame 의 top 을 가리킨다.(return value 가 top 에 있다.)
- EBX
- 특정 작업을 위해 디자인 되지 않았다. 그냥 여분의 저장공간으로 사용된다.
- EIP : instruction pointer
- 수행되고 있는 current instruction 을 가리킨다.
Reference
- Gray Hat Python, 2009
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 제주영귤
- 인공안구
- network error
- icon program
- 보드고글
- 늙기
- 제주녹색농원
- icon tool
- 과학
- 샤워기전
- 인테리어
- 의학
- 녹색농원
- 편집프로그램
- 영귤차
- 고강도
- 명언
- sudachi
- 미스터피자주문
- 데크에 바인딩묶기
- 대일농장
- 스타치
- 상식
- breakpoint
- 무릎마사지
- 칠오름
- 칠오름농장
- 인공눈
- 그림편집
- 영귤
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함