레지스터
범용 레지스터1
이름 | 설명 |
---|---|
AX(Accumulator Register) | 산술연산 명령에서 상수/변수 값을 저장하거나 함수의 리턴 값이 저장되는 용도 |
BX(Base Register) | DS 세그먼트에 대한 포인터를 주로 저장하고 ESI나 EDI와 결합하여 인덱스에 사용. BX는 메모리 주소 지정을 확장하기 위해 인덱스로 사용될 수 있는 유일한 범용 레지스터 |
CX(Counter Register) | 반복 명령어 사용시 반복 카운터로 사용. CX에 반복할 횟수를 지정해 놓고 반복 작업을 수행 |
DX(Data Register) | 입출력 포인터 값을 저장할때 사용 |
SI(Source Index) | 데이터 복사, 조작 시 Source Data(원본) 주소가 저장. SI 레지스터가 가리키는 주소의 데이터를 DI 레지스터가 가리키는 주소로 복사하는 용도로 많이 사용 |
DI(Destination Index) | 복사 작업 시 Destination(목적지, 사본)의 주소가 저장.주로 SI 레지스터가 가리키는 주소의 데이터가 복사 됨. |
SP(Stack Pointer) | 하나의 스택 프레임의 끝 지점 주소가 저장. PUSH, POP 명령어에 따라서 SP의 값이 nByte(거의 항상 4바이트)씩 변한다. |
BP(Base Pointer) | 스택 프레임의 시작 지점 주소가 저장. 스택 프레임이 소멸 되지 않는 동안 BP의 값은 변하지 않음. 현재의 스택 프레임이소멸되면 이전에 사용하던 스택 프레임을 가리킴. |
명령 포인터 레지스터
IP(Instruction Pointer) : 다음에 실행해야 할 명령어가 존재하는 메모리 주소가 저장된다. 현재 명령어를 실행 완료한 후에 IP 레지스터에 저장되어 있는 주소에 위치한 명령어를 실행하게 된다. 실행 전 IP 레지스터에는 다음 실행해야 할 명령어가 존재하는 주소의 값이 저장된다.
IR(명령어 레지스터) : 현재 수행 중인 명령어를 가지고 있다.
MAR(Memorry Address Register) : 메모리로부터 읽어오거나 메모리에 쓰기 위한 주소를 가지고 있다.
MBR(Memorry Buffer Register) : 메모리로부터 읽어온 데이터 또는 메모리에 써야할 데이터를 가지고 있다.
I/O AR(Input/Output Address Register) : 입출력 장치에 따른 입출력 모듈의 주소를 가지고 있다.
I/O BR(Input/Output Buffer Register) : 입출력 모듈과 프로세서 간의 데이터 교환을 위해 사용된다.
세그먼트 레지스터
CS(Code Segment) : 코드 영역의 시작 주소를 저장
DS(Data Segment) : 데이터 영역의 시작 주소를 저장
ES(Extra Segment) : 비디오 영역의 시작 주소를 저장
FS : 기타영역의 시작 주소를 저장
SS(Stack Segment) : 스택 영역의 시작 주소를 저장
참고 자료
ARM 프로세스 asm
ARM infomation center > 4.0 버전 한국어 문서
1. 레지스터 이름 앞에 E가 붙으면 32bit(Extended), R은 64bit ↩