stack은 storage device - LIFO방식
구현 방법 두 가지 register / memory
스택을 구현하려면 필요한 address register -> stack pointer (top 지정)
DR - push 또는 pop할 때 거쳐가는 공간
전체 64개의 register / 한 워드가 하나의 register 그것이 64개로 하나의 stack
메모리의 일부분을 stack용도로 사용하는 Memory Stack : Address가 위로 올라갈수록 작아짐
메모리의 일부분을 stack으로 사용하기에 stack address를 벗어나는 경우가 존재, 이를 알 수 있는 Stack limits - upper/lower limit
+위치에 따라 Infix, Prefix, Postfix로 나눔
RPN을 사용하는 이유는 stack구조에 적용이 쉬움
RPN을 적용할 때는 당연히 왼쪽에서 오른쪽으로 진행
5장에서 배웠던 직/간접 방식과 관련 - 여러 가지 mode를 사용하여 메모리에 접근하는 방식 소개
Implied - 5장에서 배웠던 all register reference instructions의 기능 모두 제공, stack operations - address field필요x
stack기능에 의해 알아서 업데이트
Immediate mode - Address에 들어가는 값 -> 바로 값
Autoincrement/decrement : 특정 register로 접근하면 그 곳의 address가 1 증가 또는 감소하냐에 따라 나눔
Instruction이 바뀌는 것 없이 접근하는 데이터는 계속 다른 특성 --> Table access에 유용
Relative - Address field + PC
Indexed - Address field + Index --> Table의 시작지점부터 index값만큼 떨어진 곳
Base - Address field + Base ---> 프로그램의 시작 위치값을 변경 ; 메모리 공간이 떨어져있어 효율이 떨어지는 경우 사용하여 효율성을 높이는 예시, Address field는 변경 x, 프로그램 위치만 변경될 뿐임