개발 비 휘발성 레지스터 란 무엇입니까? -techopedia에서 정의

비 휘발성 레지스터 란 무엇입니까? -techopedia에서 정의

차례:

Anonim

정의-비 휘발성 레지스터 란 무엇입니까?

비 휘발성 레지스터는 서브 루틴 호출을 통해 보존되어야하는 내용을 가진 레지스터 유형입니다. 루틴에 의해 비 휘발성 레지스터의 값이 변경 될 때마다 레지스터를 변경하기 전에 이전 값을 스택에 저장해야하며 반환하기 전에 해당 값을 복원해야합니다. 레지스터는 고정 된 수의 레지스터가 있다는 점을 제외하고 변수와 유사합니다. 모든 레지스터는 단일 값이 저장되는 CPU의 고유 한 위치입니다. 레지스터는 덧셈, 곱셈, 뺄셈 등과 같은 수학 함수를 수행 할 수있는 유일한 곳입니다. 레지스터는 종종 메모리를 가리키는 포인터를 보유합니다. 메모리와 레지스터 사이의 값 이동은 일반적인 현상입니다.

Techopedia는 비 휘발성 등록에 대해 설명합니다

다음은 비 휘발성 레지스터의 몇 가지 예입니다.

  • ebx : 일반적인 용도로 사용되는 비 휘발성 레지스터. 일반적으로 계산을 가속화하는 기능을 통해 공통 값으로 설정됩니다.


  • esi : 일반적인 목적으로 사용되는 비 휘발성 레지스터. 일반적으로 데이터 소스 및 대상이 필요한 "rep-"클래스 명령의 경우 포인터로 사용됩니다. 여기서, 에세이는 소스를 가리 킵니다. esi는 일반적으로 변경되지 않는 함수를 통해 사용되는 데이터를 보유합니다.


  • edi : 일반적인 목적으로 사용되는 또 다른 비 휘발성 레지스터. 이것은 일반적으로 포인터로 사용됩니다. edi는 일반적으로 대상을 가리키는 점을 제외하고는 esi와 동일합니다.


  • ebp : 범용 레지스터로 사용되는 다른 비 휘발성 레지스터입니다. 컴파일 설정에 따라 두 가지 용도로 사용됩니다. 범용 레지스터 또는 프레임 포인터입니다. 컴파일이 최적화되지 않았거나 코드가 직접 작성된 경우 ebp는 함수가 시작될 때 스택의 위치를 ​​모니터링합니다. 스택은 함수 전체를 통해 변경되므로 ebp가 원래 값으로 설정되면 스택에 저장된 변수를 쉽게 참조 할 수 있습니다. 컴파일이 최적화 된 경우 ebp는 모든 유형의 데이터를 저장하는 범용 레지스터로 사용되는 반면 스택 포인터의 계산은 이동에 따라 수행됩니다.
비 휘발성 레지스터 란 무엇입니까? -techopedia에서 정의