반응형
1. 레지스터란?
- CPU(중앙처리장치) 내부에 존재하는 최고 속도의 매우 작은 메모리
- 레지스터 > 캐시 > RAM > SSD/HDD
- CPU가 데이터 처리를 위해 메모리(RAM)에서 데이터를 가져오면 처리 속도가 너무 느림
- 이를 해결하기 위해 당장 필요한 데이터나 명령어를 CPU 바로 옆에 두고 사용하기 위해 설계된 장치
- CPU 종류에 따라 수십 개가 존재하며, 각각 용도가 정해져 있음
- 다음은 표는 레지스터의 구조이고, AH는 상위(High) 비트, AL은 하위(Low) 비트를 의미
| RAX (64bit) | |||||||
| EAX (32bit) | EAX (32bit) | ||||||
| AX (16bit) | AX (16bit) | AX (16bit) | AX (16bit) | ||||
| AH (8bit) | AL (8bit) | AH (8bit) | AL (8bit) | AH (8bit) | AL (8bit) | AH (8bit) | AL (8bit) |
2. 범용 레지스터
https://jaebins.tistory.com/110
범용 레지스터(EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP)
1. EAX(Accumulator Register)덧셈, 뺄셈 등과 같은 산술 및 논리 연산 결과를 저장mov eax, 5 ; eax = 5add eax, 3 ; eax = eax + 3함수의 반환 값도 저장해줌예를 들어 다음과 같은 코드에 각 매개변수에 10, 20의 argum
jaebins.tistory.com
3. 특수 목적 레지스터(Special-Purpose Registers)
- PC / IP (Program Counter / Instruction Pointer)
- 다음에 실행할 명령어의 주소를 가르킴
- IR (Instruction Register)
- 현재 실행 중인 명령어 자체를 저장
- SP (Stack Pointer)
- 스택 메모리의 최상단 주소를 가리켜 데이터의 삽입/삭제 위치를 알려줌
- MAR (Memory Address Register)
- 읽거나 쓰려는 메모리의 주소를 잠시 보관
- MBR (Memory Buffer Register)
- 메모리에서 읽어온 데이터나 쓸 데이터를 잠시 보관
4. 상태 레지스터(Status / Flag Register)
- 조건 플래그 (Condition Flags)
- ZF (Zero Flag) : 연산 결과가 0이면 1이 됨
- SF (Sign Flag) : 연산 결과가 음수면 1이 됨
- CF (Carry Flag) : 연산 중 올림수나 빌림수가 발생하면 1이 됨
- PF (Parity Flag) :연산 결과에서 1의 개수가 짝수인 지 판별
- OV (Overflow Flag) : 연산에서 결과 값이 표현 범위 초과 여부를 판별
- 제어 플래그 (Control Flags)
- DF(Direction Flag) : 문자열 처리 시 메모리 주소의 증감 방향 결정 (0: 주소 증가, 1: 주소 감소)
- IF(Interrupt Flag) : 외부 인터럽트(하드웨어 신호 등)을 허용할지 결정 (0: 무시, 1: 허용)
- TF(Trap Flag) : 디버깅을 위해 명령어를 한 단계씩 실행(Single-Step) 할 지 결정
5. 데이터가 처리되는 흐름 (예시)
- 컴퓨터가 1 + 2라는 연산을 할 때 레지스터는 다음과 같이 작동
- PC가 연산 명령어가 있는 주소를 가리킴
- MAR을 통해 해당 주소로 가서 명령어를 가져와 IR에 담음
- 제어장치가 명령을 해석하고, MBR을 통해 숫자 1과 2를 가져와 범용 레지스터에 넣음
- **ALU(산술논리장치)**가 계산을 수행하고 결과를 다시 레지스터에 저장합니다.
반응형
'IT Dictionary > Computer Science' 카테고리의 다른 글
| 범용 레지스터(EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP) (0) | 2026.01.23 |
|---|---|
| git error: remote unpack failed: unable to create temporary object directory 오류 (0) | 2023.05.16 |
| 리눅스(Linux) 터미널 필수 명령어 정리 (1) | 2023.05.06 |
| 리엑트(React) 설명 (2) | 2023.05.02 |
| 카페24(Cafe24) react, nodejs 빌드, 배포, 호스팅 하기 (10) | 2023.05.01 |