레지스터(Register)
- CPU(Central Proceessing Unit)가 요청을 처리하는 데이터의 임시저장 공간이다.
- 레지스터는 공간은 작고 가격은 비싸지만 CPU에 직접 연결되어 있어서 연산 속도가 RAM, HDD, SDD 보다 빠르다.
- CPU는 자체적으로 데이터를 저장할 수 없으므로 레지스터를 이용하여 연산처리 및 번지 지정을 도와준다.
- 컴퓨터 장치들을 제어한다.
범용 레지스터(General Purpose Register)
EAX, EBX, ECX, EDX Offset
- 위 그림은 레지스터의 크기를 나타낸 그림이다.
- EAX레지스터를 예를 들면 EAX, AX, AH, AL은 모두 다른 레지스터가 아닌 EAX레지스터에서 분할된 레지스터의 이름이다.
- 알파벳 EAX 중 16byte를 통해 AX레지스터로 접근이 가능하고 AX를 2개로 나누면 AX(AccumulationHigh),
AL(Accumulation Low)값으로 나누어지게 되는데 이 두 레지스터가 각각 4byte씩 할당된다.
(효율적으로 레지스터를 활용하기 위해 분할한 것이다.)
산술 연산 레지스터
EAX(Accumulation)
- 산술연산에 사용되는 레지스터이다.(상수/변수 값의 저장 용도)
- 함수의 return 값 지정한다.
EBX(Base Register)
- 간접 번지지정에 사용된다.
- 산수 / 변수를 저장한다.
ECX(Counter Register)
- 반복(Loop)에서 반복 Count 역할을 수행
REP(반복 레지스터)에 얼마나 반복할 것인지를 ECX 레지스터에 저장한다.
EDX(Data Register)
- EAX를 보조하는 역할을 수행한다.
- 4byte * 4byte를 연산하면 EAX에 담기지 않을 수 있다 → EDX(상위 bit), EAX(하위 bit)를 이용하여 8byte에 저장한다.
- 나누기를 진행할 경우 몫은 EAX 나머지는 EDX에 저장이 된다.
'Assemble > 어셈블리언어 입문' 카테고리의 다른 글
리틀엔디안 빅엔디안 (0) | 2021.12.29 |
---|---|
데이터 기초 (0) | 2021.12.28 |