본문 바로가기

C

(3)
컴파일러와 링커가 하는일 [ 참고자료 ] [ 컴파일러 ] 프로그래밍 언어를 computer가 이해하도록 기계어로 변환 => n개의 object 코드 생성 [ 링커 ] object코드를 모아 exe파일 생성 해당 파일을 IDE에서 bulild하게 되면 object파일 생성 그리고 실행파일 생성
CPU가 A+B를 처리하는 방법 [ int A = 3; int B = 4; int C = A+B; 라는 코드를 CPU는 어떻게 값을 읽고 저장할까? ] [ 설명전 알았으면 좋겠는 것 ] [ 프로그램 카운터 ] 다음번에 읽어와야 하는 주소를 저장하고 있다. [ 명령어 레지스터 ] 명령어를 저장할수 있다 [ 메모리 주소 레지스터 ] 주소를 저장할 수 있다. [ 메모리 데이터 레지스터 ] 메모리의 값을 저장할 수 있다. [ 어큐물레이터 ] 산술 작업을 도와주는 역할을 한다. [ 제어장치 ] 명령어를 해석한다 [ 산술 논리 장치(ALU) ] 연산 작업을 한다 [참고자료] 1) OS는 보조기억장치의 프로그램을 읽는다. 이후 각 주소에 필요한 메모리 값을 저장한다. (A의 값 3은 주소10에 저장되었고 B의 값 4는 주소 11에 저장되었다.) 2..
포인터 설명할것들 ( 수정예정 ) [ CPU ] CPU는 시스템의 작업을 처리하는 핵심 중추이다 RAM에만 접근할수 있다. [ RAM ] Ramdom Access Memory 이란 뜻으로데이터에 비순차적으로 접근하는 기억장치이다.비순차적인 접근은 데이터의 위치를 나타내는주소를 통해 접근할 수 있다. [ CPU와 RAM의 데이터 교환 방식 ] Control bus -> RAM에게 데이터를 보낼지 받을지 결정 해준다 Address bus -> 데이터의 주소를 송신한다 Data bus -> 데이터를 송신한다. (이걸 이해하면 c언어에서 포인터를 사용할수 있다는게 어떤의미인지 좀더 잘 이해할 수 있을것 같아서 남겨놓았다 추후 완성하자!)