Stack Frame과 함수 호출 규약(__stdcall)
CS2024. 4. 28. 22:36Stack Frame과 함수 호출 규약(__stdcall)

스택 프레임이란?쓰레드의 실행 문맥(Context)를 제공하는 스택의 추상화입니다.다른 말로는 함수의 호출 정보를 저장하는 자료구조이고, 이 자료구조는 스택형태로 되어 있습니다.스택 프레임에는 함수로 전달되는 매개 변수(인수)와 지역변수, 함수 호출을 마치면 돌아올 복귀 할 주소 등의 정보들이 들어갑니다. 스택프레임 형성 과정이런식으로 호출을 하는 경우 대~충 아래처럼 스택이 쌓입니다.sp(stack pointer)이라는 레지스터는 변수가 하나씩 할당될 때마다 증가하는데 증가하면서 다음 변수가 할당될 메모리 위치를 가르키게 됩니다.함수가 호출이 종료되고 나서 돌아갈 곳을 기억하기 위해서 fp(frame pointer) 라는 레지스터를 사용을 합니다.즉, sp가 돌아갈 위치를 fp가 기억을 해주는 방식입니..

[자료구조] 사칙연산 계산기 구현
자료구조2023. 7. 4. 19:44[자료구조] 사칙연산 계산기 구현

간단한 사칙연산 계산기 구현입니다. C, C++을 통해서 계산기를 구현한 코드입니다. 먼저 알아야할 개념은 두가지 입니다. 1. 자료구조 스택 (LIFO) 2. 수의 중위 표기법, 전위 표기법, 후위 표기법 중위 표기법은 1+2*3 과같은 저희가 사용하는 수식입니다. 전위 표기법은 +1*23 후위표기법은 123*+ 입니다. 순서는 "Stack 자료구조 구현 => 중위 표현식을 후위 표현식으로 변경 => 후위 표현식을 계산" 입니다. 스택의 중위 => 후위로 변경할 때 사용하는 자료구조 입니다. 연산자의 우선순위가 높다면 스택에 쌓아두고 그렇지 않다면 현재 스택에서 pop() 을 진행한뒤 쌓아둡니다. 후위 표기법의 계산은 12+3*순일경우 앞에 있는 수 12를 차례대로 끄집어 낸다음 뒤에오는 '+' 연산자..

image