Stack은 메모리 접근을 편리하게 하기 위한 하나의 방식이다.
Stack에 대한 기본적인 설명
Stack의 PUSH(쓰기)와 POP(읽기)
[PUSH]
[POP]
주소를 참조하는 것들
PC
- 명령어의 주소를 저장
AR
- 피연산자의 주소를 저장
SP
- Stack을 접근하고자하는 메모리의 주소
RPN (Reverse Polish Notation)
RPN이라는건 연산자(+, -, *, / 등)를 피연산자(숫자나 변수) 뒤에 쓰는 후위 표기법이다. 이 방식은 Stack을 활용하여 수식을 계산하는 데 매우 적합하다.
왜 RPN을 사용하는가?
- 일반적인 연산과는 다르게 우선순위를 고려할 필요없다. 즉, ()가 필요없다.
- 따라서, 연산자 순서가 정해져있기 때문에 스택을 이용해 계산 과정을 쉽게 구현할 수 있다.
표기법
- 중위 표기법 (Infix notation): 연산자가 피연산자 사이에 위치. (예: A + B)
- 전위 표기법 (Prefix notation): 연산자가 피연산자 앞에 위치. (예: +AB)
- 후위 표기법 (Postfix notation / RPN): 연산자가 피연산자 뒤에 위치. (예: AB+)
AB*CD*+ 계산해보기
(A + B) * [C * (D + E) + F] 를 RPN으로 변경해보기
실제 예시 살펴보기
'2학년 2학기 > 컴퓨터 구조' 카테고리의 다른 글
8.5 Addressing modes (0) | 2024.11.17 |
---|---|
8.4 Instruction formats (0) | 2024.11.17 |
8.2 General register organization (0) | 2024.11.17 |
8.1 Introduction(생략) (0) | 2024.11.17 |
7.4 Design of control unit / Fuction Field (0) | 2024.11.09 |