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
'Programming > System Programming' 카테고리의 다른 글
윈도우즈 시스템 프로그래밍 - 11. 쓰레드의 이해(1) (0) | 2020.07.22 |
---|---|
윈도우즈 시스템 프로그래밍 - 10. 컴퓨터 구조에 대한 세 번째 이야기(3) (0) | 2020.07.21 |
윈도우즈 시스템 프로그래밍 - 10. 컴퓨터 구조에 대한 세 번째 이야기(1) (0) | 2020.07.21 |
윈도우즈 시스템 프로그래밍 - 9. 스케줄링 알고리즘과 우선순위(2) (0) | 2020.07.20 |
윈도우즈 시스템 프로그래밍 - 9. 스케줄링 알고리즘과 우선순위(1) (0) | 2020.07.20 |