함수 호출 인자의 전달방식

- 실제로는 역순으로 스택 메모리에 채워짐(8이 먼저, 그리고 7이 저장 됨)
- "SP가 가리키는 현재 위치에 전달되는 인자값을 저장하고 나서, SP를 증가시켜 다음 메모리 주소를 가리키게 한다."
함수 호출 인자의 전방식의 문제점
- (STORE 대상 레지스터, 목적지 메모리 주소)로 명령어를 전달해야 되기 때문에 STORE 7, sp 와 같은 명령어를 사용할 수 없음
- 이를 해결하기 위해 2가지 명령어를 사용해야 함
1) 숫자 7을 레지스터에 저장하는 명령어: ADD r1(레지스터), 7, 0 으로 7을 r1 레지스터에 저장
2) sp를 메모리에 저장하는 명령어: STORE sp, 0x40
PUSH 명령어 완성
ADD r1, 7, 0
STORE sp, 0x40
STORE r1, [0x40] (Indirect Mode)
ADD sp, sp, 4 (SP 증가)
POP의 기능
ADD sp, sp, -4 또는 SUB sp, sp, 4
'시스템 프로그래밍' 카테고리의 다른 글
11-1. 프로세스와 쓰레드 (0) | 2022.05.31 |
---|---|
10-3. 호출 규약과 실행의 이동 (0) | 2022.05.25 |
10-1. 절차적 함수 호출(Procedure Call) 지원 CPU 모델 (0) | 2022.05.25 |
9. 프로세스의 스케줄링 (0) | 2022.05.24 |
8-3. 파이프 방식의 IPC (0) | 2022.05.20 |