색인 레지스터 - S

스택의 위치를 표시한다.

  • page 1 범위
  • 스택 포인터

스택에 Push/Pop 하면 알아서 s 레지스터의 값이 바뀐다.

  • 시작 지점이 0xFF push 할 때 마다 값이 1씩 줄어듬
  • pull 할 때 마다 값이 증가함

S 레지스터의 초기값

초기값을 강제하지 않기 때문에 모른다.

  • unspecified

스택 사용량이 256바이트를 넘으면 링버퍼에서 한 바퀴 돌고 기존의 기록을 덮어쓸 수 있어서 문제다.

ldx #$FF
txs

x 레지스터에 $FF를 로드하고, x 레지스터의 값을 s 레지스터로 전송한다. >> 이게 베스트 프랙티스

Page 0, Page 1 합치기

최소 메모리 요구사항이 “Page 0”, “Page 1”해서 512 바이트

이 둘을 합쳐서 극한으로 최소 메모리 요구사항을 256 바이트로 줄일 수 있다.

방향으로 구분하는 방식이네요..

“둘이 오버랩 되지 않는다” >> 페이지 0과 페이지 1이 겹치지 않는다는 것, 덮어쓰지 않아야 한다.