2025/04/09 2

[CSAPP] 3-7 프로시저

컴퓨터 프로그램은 여러 작업을 하나의 함수(프로시저)로 묶어 필요할 때마다 호출합니다.하지만 단순히 함수를 호출하는 것만이 아니라, 함수가 호출될 때마다 스택 프레임(활성화 레코드)이 생성되어 함수의 인자, 반환 주소, 지역 변수 등이 저장되고, 함수 실행이 끝나면 원래의 상태로 복귀하게 됩니다.이 글에서는 C와 어셈블리어 예시를 통해 프로시저 호출의 내부 동작, 스택 프레임 구성, 그리고 함수 호출과 반환 과정에 대해 자세히 알아보겠습니다. 또한, 프로시저라는 개념이 추상화(abstraction)의 한 형태임을 이해하기 위해, 추상화의 개념과 수학적 함수로서의 관점을 함께 살펴보겠습니다.1. 추상화와 프로시저추상화 추상화는 복잡한 시스템을 간단하게 만들어, 사용자가 필요한 핵심 기능만을 이용할 수 있도..

CSAPP/3장 2025.04.09

[CSAPP] 3-6 제어문

컴퓨터 프로그램은 단순히 순차적으로 명령어를 실행하는 것이 아닙니다.우리가 if, for, while 같은 제어문으로 “만약 ~라면”, “반복하라”, “갈림길에서 어느 쪽으로 갈지”를 표현하듯이,실제 기계어(어셈블리어)에서는 이러한 제어 구조를 비교 명령어, 조건부 점프, 무조건 점프와 함께작은 플래그(조건 코드)를 이용해 제어합니다.먼저, 조건문이나 반복문을 제대로 이해하려면 '조건 플래그'가 무엇인지 알아야 합니다.조건 플래그는 계산 결과에 대해 “이 값이 0인가?”, “음수인가?”, “넘쳤나?”와 같은 정보를1비트짜리 스위치처럼 저장해 놓은 것으로, 이후에 조건부 점프 명령어가 이 플래그들을 참고하여프로그램의 흐름을 결정하게 됩니다.1. 조건 플래그(Condition Codes) - 결과를 판단하는..

CSAPP/3장 2025.04.09