본문 바로가기
Study/RCE

CPU 레지스터

by 뿡뿡대마왕 2011. 9. 28.
반응형
레지스터는 cpu 내부에 존재하는 작은 고속의 메모리라고 할 수 있다고 한다.
레지스터 종류로는 범용 레지스터, 세그먼트 레지스터, 상태 플래그 레지스터, 명령 포인터 레지스터 등이 있다.

범용 레지스터 


EAX (Extended Accumulator Register)
-> 곱셈과 나눗셈 명령에서 자동으로 사용되고 함수의 리턴값이 저장되는 용도

EBX  (Extended Base Register)
->ESI나 EDI와 결합하여 인덱스에 사용

ECX (Extended Count Register)
-> 반복 명령어 사용시 카운터로 사용, ECX레지스터에 반복할 횟수를 지정해 놓고 반복 작업 수행

EDX  (Extended Data Register)
-> EAX와 같이 사용되고 부호 확장 명령 등에 쓰임

ESI  (Extended Source Index)
->데이터 복사시 Source Data주소(복사할곳을 말한다.)

EDI  (Extended Destination Index)
-> 복사 작업시 목적지 주소가 저장.

ESP (Extended Stack Pointer)
->하나의 스택 프레임의 끝 지점 주소가 저장.(PUSH, POP에 따라 위치가 4바이트씩 변함)

EBP (Extended Base Point)
->하나의 스택 프레임의 시작 지점 주소가 저장. 현재 사용되는 스택 프레임이 소멸되지 않는 동안 EBP값은 변하지 
   않는다.

명령 포인터
EIP(Extended Instruction Pointer)
-> 다음에 명령어가 위치를 나타냄. 현재 명령어를 실행 후 EIP 레지스터에 저장되는 주소에 있는걸 수행

세그먼트 레지스터

CS(Code Segment)

->실행 가능한 명령어가 존재하는 세그먼트의 오프셋이 저장된다.

DS(Data Segment)

->프로그램에서 사용되는 데이터가 존재하는 세그먼트의 오프셋 저장


SS(Stack Segment)

-> 스택이 존재하는 세그먼트의 오프셋이 저장

플래그 레지스터


CF(Carry Flag)

-> 부호 없는 연산 결과가 용량보다 클 때 1로 셋팅

ZF(Zero Flag)

->연산 결과가 0일때 1로 셋팅

OF(Overflow Flag)

->부호 있는 연산 결과가 용랴옵다 클 때 1로 셋팅

SF(Sign Flag)

->연산 결과가 음수가 되었을 때 1로 셋팅

DF(Direction Flag)

->문자열 처리에서 연속되는 문자열의 처리 방향에 따라 세트됨



반응형

댓글