레지스터란

CPU 내부에 있는 8,16,32Bit 고속 저장소를 말하며 일반적으로 사용하고 있는 메모리 보다 데이터를 훨씬 빨리 읽거나 쓰도록 되어 있습니다.

종류로는

세그먼트레지스터

CS(Code Segment):프로그램의 실행 명령어들이 내장되는 메모리 영역의 시작위치를 보관합니다.

DS(Data Segment):데이터가 재장되는 메모리 영역의 시작위치를 보관합니다.

SS(Stack Segment):스택으로 사용되는 메모리 영역의 시작위치를 보관합니다.

ES(Extra Segment):변수들을 위한 추가 메모리 영역의 시작위치를 보관합니다.

인덱스 레지스터:데이터와 명령어들의 오프셋 주소를 갖는다.

BP(Base Pointer):SS 레지스터로부터의 오프셋 주소를 갖는다.

SP(Stack Pointer):스택 최상부 위치의 오프셋 주소를 갖는다.

SI(Source Index):소스 문자열이 사용되며 SI레지스터가 이 문자영을 가리킨다.

DI(Destination Index):DI 레지스터는 문자열 이동 명령어에서 데스티네이션을 가리키느데 사용된다.

상태 및 제어 레지스터

IP(Instroduction Pointer):항상 현재 코드 세그먼트내의 다음 실행될 명령어의 오프셋 주소를 갖는다. IP와 CS 레지스터는 결합하여 다음 실행될 명령어의 메모리 주소를 결정한다.

Flag:플레그 레지스터의 비트들은 CPU의 현재 상태 또는 연산 결과와 관련된 정보를 보여 준다. 관련된 비트 위치는 각각 이름이 주어지고, 관련되지 않는 위치들은 정의 되지 않는다.

제어 플래그

방향 플레그(DF):MOVS,CMPS,SCAS같은 명령어들의 블록데이터 이동에 영향을 준자.

 0:데이터 이동 주소 증가, 1:감소

인터럽트 플레그(IF) :시스템 인터럽트들이 처리되거나 되지 않도록 명령한다.

트랩 플레그(TF):명령어 하나 하나 실행된 후 CPU가 정지 상태로 되어야 할지 말지를 결정한다.

상태 플래그:상태 플레그들은 CPU가 실행한 산술 및 논리 연산의 결과를 반영한다.

캐리 플레그 (CF):부호 없는 산술 연산 결과가 너무 커서 데스티네이션 피연산자에 저장되지 못할 때 설정된다.

오버 플로우 플레그(OF): 부호 있는 산술연산 결과가 너무 많은 비트들을 요구하여 데스티네이션 피연자에 저장하지 못할 때 사용된다.

부호플래그(SF):산술 및 논리 연산의 결과가 음의 수가 될 때 설정된다.

보조플래그(ZF):산술 및 논리 연산 결과가 0 일 때 설정된다.

제어플래그(AF):피연산자의 비트 3에서 비트4로 자리올림이 발생했거나, 비트 4에서 비트 3으로 자리내림일 때 설정된다.

패리티플래그(PF):연산 결과에서 값이 1인 비트이 수를 나타낸다


Posted by 응이

Dream come true.
응이

달력

태그목록