일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- kotlin
- 자바
- 회고
- 백준
- 백준알고리즘
- 스프링
- SW봉사
- 문제풀이
- 코딩봉사
- 정보처리산업기사
- 코틀린
- 프로그래머스
- 알고리즘
- 시나공
- CJ UNIT
- C++
- python
- 데이터베이스
- programmers
- MYSQL
- 공부일지
- 1과목
- 파이썬
- 코딩교육봉사
- SQL
- 백준 알고리즘
- softeer
- BFS
- java
- 소프티어
Archives
- Today
- Total
목록stack frame (1)
JIE0025

함수 호출과 메모리 반환 어셈블리 언어에서 어떻게 이루어지는지 알아보자. 다음은 설명을 위한 가정이다. - 함수 B에서 함수 A를 호출하는 상황이다. - 함수 A는 매개변수로 int b, int c, int d를 갖고 있으며, 반환형은 int형이다. 1. CALL 함수 A를 호출 하면 다음과 같은 세가지 단계를 거친다. 1) push : 매개변수 저장 push를 통해 a라는 함수의 인자로 들어갈 값을 저장한다. 함수 a의 매개변수는 총 3개 이므로 push를 세번 반복할 것이다. 함수 호출시 가장 먼저 하므로 스택의 밑부분에 위치한다. 2) call : 호출한 명령어의 주소 저장 EIP(instuction Pointer)로 다음 명령어 주소값에다가 현재 우리가 함수를 호출했던 주소를 저장해줌으로서 ret..
기타 학습/Language
2020. 3. 19. 02:25