스택 레지스터 란 무엇입니까?
컴퓨터와 관련하여 스택 레지스터는 스택으로 알려진 별도의 컴퓨터 메모리 영역의 현재 주소를 보유하는 메모리 위치 (일반적으로 CPU) 또는 관련 처리 하드웨어입니다. 스택 레지스터는 컴퓨터가 없으면 프로그램 실행 흐름을 추적하는 느리고 오류가 발생하기 쉬운 방법을 구현해야하기 때문에 중요합니다. 대부분의 시스템 아키텍처에서 스택 레지스터는 전용 레지스터이므로 다른 메모리 레지스터와 함께 작업 할 때 실수로 액세스하지 않습니다. 더 드물게 스택 레지스터는 일반적으로 프로그램에서 액세스 할 수있는 일반 레지스터 일 수 있지만 제조업체가 사용하기 때문에 의도적으로 사용되지 않습니다. 컴퓨터 시스템에 두 개 이상의 스택 레지스터가 포함되어있는 경우, 잠재적으로 하나 이상의 스택이 있음을 의미하면 아키텍처를 스택 머신이라고합니다.
가장 낮은 수준의 컴퓨터 프로그래밍에서 스택은 잘 정의 된 유형의 동작을 갖는 메모리 영역 (일반적으로 RAM)의 메모리 영역입니다. 스택에는 푸시 링이라는 프로세스에 정보가 추가 될 수 있거나 팝핑이라고 불리는 정보를 검색 할 수 있습니다. 스택의 모델은 우선, 마지막으로, 여러 정보를 스택으로 밀면 첫 번째 요소가 튀어 나오는 마지막 요소가 튀어 나오는 반면 마지막 요소는 팝 명령으로 검색 한 첫 번째 요소가됩니다. 스택 레지스터는 스택의 상단을 추적합니다.이 스택은 항상 마지막으로 밀려납니다.
컴퓨터 프로그램이 실행될 때 실행되는 각 명령어에는 프로그램 기간 동안 일시적으로 저장되는 특정 메모리 주소가 있습니다. 프로그램이 프로그래밍 언어 & M에 따라 서브 루틴 또는 절차, 기능 또는 방법을 호출하는 경우대시; 그런 다음 프로그램이 서브 루틴 코드의 메모리 주소로 이동하여 실행해야합니다. 프로그램 제어 흐름이 서열에 분기로 나오는 주소가 스택으로 밀려 나서 기억됩니다. 서브 루틴이 실행을 완료하면 프로그램은 스택 레지스터가 가리키는 스택 상단에서 코드 주소를 팝업하여 기본 코드의 위치를 알고 있습니다.
.동일한 결과를 달성하는 데 사용할 수있는 다른 방법이 있지만 스택 및 스택 레지스터를 사용하면 재귀로 알려진 중요한 프로그래밍 개념이 가능합니다. 재귀 함수는 자체 코드 내에서 자체를 호출하는 함수입니다. 이 프로세스는 일반적으로 알고리즘 분류 및 특정 수학적 기능에 사용됩니다. 스택 레지스터는 실행이 분기되는 마지막 주소를 추적하고 있으므로 함수는 통제가 원산지 지점으로 돌아올 것이라는 지식으로 재귀를 안전하게 구현할 수 있습니다. 하나의 복잡한전체 스택이 가득 차고 메모리의 공간이 남아 있지 않으면 스택 오버플로가 발생하여 프로그램의 실행이 중단됩니다.