대중과학. 스택은 Java 비지능형 기계의 저장소입니다.
스택은 데이터를 저장하는 데 사용되는 영역입니다. 이 지역 자체에는 특별한 것이 없습니다. 내부 RAM의 일부일뿐입니다. 특별한 점은 데이터를 저장하고 접근하는 방식, 즉 '선입선출, 후입선출'이라는 점이며, 스택에는 특별한 데이터 전송 명령, 즉 'P USH'와 'POP'이 있으며 이를 제공하는 전용 장치, 즉 스택 포인터 SP가 있습니다. PUSH 명령이 실행될 때마다 SP는 원래 값을 기준으로 자동으로 2씩 감소합니다. POP 명령이 실행될 때마다 SP는 원래 값을 기준으로 자동으로 2씩 증가합니다. SP의 값은 명령어에 의해 변경될 수 있으므로 프로그램 시작 시 SP의 값을 변경하면 지정된 메모리 단위에 스택을 설정할 수 있습니다. 예를 들어, 프로그램 시작 시 MOV SP, #5FH 명령어를 사용하여 메모리 유닛 60H부터 시작하는 유닛에 스택을 설정합니다. 일반적으로 프로그램 시작 부분에는 항상 스택 포인터를 설정하라는 명령이 있습니다. 왜냐하면 시작할 때 SP의 초기 값이 07H이므로 스택이 유닛 08H에서 시작하여 되돌아가기 때문입니다. 08H부터 1FH까지의 영역은 8031의 두 번째, 세 번째, 네 번째 워킹 레지스터 영역으로 자주 사용되는 영역으로 데이터 혼선이 발생하게 된다. 서로 다른 작성자가 프로그램을 작성할 때 초기화 스택 명령은 정확히 동일하지 않습니다. 이것은 작가의 습관의 문제이다. 스택 영역이 설정되었다고 해서 해당 영역이 특별한 메모리가 되는 것은 아닙니다. 일반 메모리 영역처럼 사용할 수 있지만 일반적으로 프로그래머는 이를 일반 메모리로 사용하지 않습니다.
답글 (1)
알겠습니다, 공유해 주셔서 감사합니다.
— 모든 답글이 로드되었습니다. —