cpp : pre-processor 전처리 단계 compiler : 어셈블리어로 변환assembler : 기계어 인스트럭션으로 변환linker : 호출된 (printf).o 파일과 결합 -> 실행파일 생성 ① 응용 프로그램이 하드웨어를 잘못 사용하지 못하게 하기 위해②
Assembler 어셈블러 : C → 어셈블리어 스택 연산 : x86-64에서 스택은 낮은 주소 방향으로 성장하기 때문에 push하면 메모리에 저장하고 %rsp가 감소하고 pop하면 메모리를 읽어내고 %rsp가 증가한다 procedure 프로시저 procedure → 함수 프로시저 호출은 소프트웨어에서의 주요 추상화다 caller : 호출자, c...
.c -(cpp, cc1, as)→ .o -(linker)→ .exe변경 후, 실행파일로 변환할때한꺼번에 파일을 바꾸게 되면 변경되지 않은 파일도 컴파일을 하게되기 때문에 비효율적이다그래서 linker 가 필요재배치링킹을 하는 과정에서 각각의 파일들의 메모리들을 하나의
엠 얼록