일반 레지스터에는 누산기인 AX, 카운터인 CX, 기본 주소 레지스터인 BX 및 BP, 인덱스 레지스터인 SI 및 DI, 기본 포인터인 BP 및 SP가 포함됩니다. 스택 포인터.
범용 레지스터 소개:
데이터를 전송하고 임시 저장하는 데 사용할 수 있으며 산술 및 논리 연산에 참여하고 연산 결과를 저장할 수도 있습니다. 게다가, 그들은 각각 몇 가지 특별한 특징을 가지고 있습니다. 어셈블리 언어 프로그래머는 각 레지스터의 일반 및 특수 용도에 대해 잘 알고 있어야 합니다. 그래야만 프로그램에서 레지스터를 올바르고 합리적으로 사용할 수 있습니다.
데이터 레지스터 소개:
데이터 레지스터는 주로 피연산자, 연산 결과 등의 정보를 저장하는 데 사용되므로 피연산자를 읽을 때 버스를 점유하고 메모리에 액세스하는 데 필요한 시간을 절약할 수 있습니다. 32비트 CPU에는 4개의 32비트 범용 레지스터 EAX, EBX, ECX 및 EDX가 있습니다. 하위 16비트 데이터에 대한 액세스는 상위 16비트 데이터에 영향을 주지 않습니다. 이러한 하위 16비트 레지스터의 이름은 AX, BX, CX 및 DX이며 이전 CPU의 레지스터와 일치합니다.
4개의 16비트 레지스터는 8개의 독립적인 8비트 레지스터(AX: AH-AL, BX: BH-BL, CX: CH-CL, DX: DH-DL)로 나눌 수 있으며, 각각 각 레지스터에는 고유한 이름이 있으며 독립적으로 액세스할 수 있습니다. 프로그래머는 데이터 레지스터의 "분할 및 결합" 기능을 사용하여 워드/바이트 정보를 유연하게 처리할 수 있습니다.
레지스터 AX 및 AL은 누산기라고도 하며 누산기를 사용하는 작업에는 시간이 덜 걸릴 수 있습니다. 누산기는 곱셈, 나눗셈, 입출력 및 기타 연산에 사용될 수 있으며 자주 사용됩니다. BX 레지스터를 기본 주소 레지스터(Base Register)라고 합니다.
메모리 포인터로 사용될 수 있으며 CX 레지스터를 카운트 레지스터(Count Register)라고 합니다. 루프 및 문자열 작업에서는 이를 사용하여 루프 수를 제어합니다. 여러 비트를 이동할 때 CL을 사용하여 레지스터 DX를 데이터 레지스터(데이터 레지스터)라고 합니다. 곱셈과 나눗셈 연산을 수행할 때 연산에 참여하기 위한 기본 피연산자로 사용할 수 있으며 I/O 포트 주소를 저장하는 데에도 사용할 수 있습니다.
16비트 CPU에서는 AX, BX, CX, DX를 베이스 주소와 인덱스 레지스터로 사용하여 저장 장치의 주소를 저장할 수 없지만, 32비트 CPU에서는 32- 비트 레지스터 EAX, EBX, ECX 및 EDX는 데이터를 전송하고 산술 및 논리 연산 결과를 저장하기 위해 데이터를 임시로 저장할 수 있을 뿐만 아니라 포인터 레지스터로도 사용할 수 있습니다. 따라서 이러한 32비트 레지스터는 더욱 다양합니다. 자세한 내용은 섹션 3.8 - 32비트 주소에 대한 주소 지정 모드를 참조하세요.