728x90

 

함수 호출 인자의 전달 방식

- sp가 가르키는 현재 위치에 전달되는 인자값을 저장하고 sp를 증가시켜 다음 메모리 주소를 가르킴

 

PUSH

- 인자들을 STORE 명령어를 통해 바로 sp에 가르키는 메모리에 넣을 수 없음

- 해결방법

    -> 인자값을 레지스터에 저장(ADD r1, 7, 0)

    -> Stack Pointer가 가지고 있는 메모리 정보를 임의의 메모리 공간에 저장(STORE sp, 0x40)

    -> r1에 있는 SP의 메모리 정보를 가지고 있는 메모리 공간에 저장(STORE r1, [0x40])

    -> SP의 주소 값을 증가(ADD sp, sp, 4)

- 위 명령어 조합을 PUSH라고 함

 

POP

- SP을 줄이는 것은 간단하게 ADD 명령어나 SUB 명령어를 이용해서 구현할 수 있음(ADD sp, sp, -(스택 프레임 크기)/ SUB sp, sp, (스택 프레임 크기))

728x90

+ Recent posts