본문 바로가기

C.E/Assembly

SP ; Stack Pointer

SP ; Stack Pointer

: 서브루틴 호출이나 인터럽트 발생시에 복귀주소(return address)를 저장, C 프로그램에서 지역변수(local variable)를 저장, 어셈블리 프로그램에서 임시 데이터를 저장

Ø  Stack : 데이터 메모리인 RAM의 일부를 특별한 데이터 저장 영역으로 할당하여 두고 후입선출(LIFO; Last-In First-Out) 방식으로만 액세스하여 사용하는 메모리

Ø  stack overflow : stack의 용량을 너무 작게 설정하거나, 또한 프로그램 작성시에 stack에 데이터를 push하는 동작과 pop하는 동작이 쌍으로 이루어지지 않으면 stack에 데이터가 누적되고 결국 지정된 stack 영역 메모리의 범위를 벗어나는 에러 발생.

Bit

15

14

13

12

11

10

9

8

$3E($5E)

SP15

SP14

SP13

SP12

SP11

SP10

SP9

SP8

$3D($5D)

SP7

SP6

SP5

SP4

SP3

SP2

SP1

SP0

 

7

6

5

4

3

2

1

0

Read/Write

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Initial Value

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

'C.E > Assembly' 카테고리의 다른 글

Flag Register  (0) 2014.04.21
어셈블리 명령어 모음  (0) 2014.04.15