C언어 수업정리/3월 수업정리

3월 5일 수업정리 C언어 기본작성 전처리파일, 기계어파일

송시혁 2013. 3. 5. 15:02

C언어 기본 작성 방법

위에 보이는 경로에 내 문서- 수업(새 폴더 만들기) - C언어수업(새 폴더 만들기)- 날짜 (2013-03-05)

 

위의 경로를 복사하여 아래 그림과 같이 메모장 에 복사한다. 참고로 위의 main.c, main.exe, main.obj는 내가 프로그램을 완성시켜서 그런것이다. 처음 할 때는 없다!!

 

 

위에서 enter를 친다. 그렇게 되면 아래 그림처럼

 

 

 바로 생성한 파일의 경로에 저장할 수 있게 된다.

 

프로그램을 메모장에 작성한뒤 저장한다

 

main.c로 저장한다. 확장자 반드시 .c!!!!

 

 

 

아까 만들었던 폴더에 우클릭해서 프롬프트 실행한다. 아이콘에 우클릭 아님.

 

프롬프트에 cl main.c를 친다

잠시 기다리다가 글자가 나오다가 멈춘다

그리고 D:\내문서\C언어 수업\2013-03-15>라는 필자가 지정한 경로가 나오는데 여기에서 main이나 main.exe로 입력한다. tab키를 눌러도 된다!!

그러면 pritntf문에서 작성하였던 내용이 출력되는것을 확인 할 수 있다.

그리고 main.exe와 main.obj가 생성되는 것을 볼 수 있다. 참고로 위의 생성되어 있는 것은 먼저 실행해서 만들어 놓은 것을 스크린 샷 햇다. 처음부터 하려니 귀차니즘이 ㅎㅎ

 

자 이번엔 위의 그림에서 아이콘 3개를 보자!!! 그리고 아래에 추가된 아이콘들을 잘보자!!!

 

main.c와 main.asm파일이 추가 된것을 알 수 있다. 이 파일들을 만드는 특정한 명령어가 있다.

main.i= cl /P 파일명.c, cl 파일명.c /P

main.asm= cl /Fa 파일명.c, cl 파일명.c /FA

입력한다. 반드시 대소문자를 구분하며 띄어쓰기도 해야한다. 파일명이 main이므로 명령어 뒤에 main.c를 입력한다. 만약에 test.c라면 cl /P test.c라고 입력한다. 그러면 test.i라는 파일이 생성 될것이다.

그러면 위의 그림처럼 각각의 아이콘이 나온다.

처음에 보이지 않는 이유는 원래는 이 파일을 만든다. 그런데 컴파일 과정에서 이 두 개의 파일을 지우는데 대신에 temp라는 파일에 저장이 된다. 그러니깐 위의 경로상에서 보이지 않을 뿐이다. 위의 명령어로 파일을 생성한 것은 2개의 파일을 temp라는 파일에서 명령어로 강제로 복사하여 가져온 것이다.

 

 

자, 그럼 다음으로 이 두개의 파일을 열어 보겠다. 일단 main.i를 C프로그램으로 열어보겠다.

 

이렇게 뜬다. 스클롤을 내려서 가장 아래 부분으로 가면은

우리가 프로그램한 문장이 보인다. 그런데 #include <stdio.h>가 보이지 않는다. 위그림에서 보이는 빨간네모 위에 여러 글자가 보이는데 #include 가 전처리 되어 나온것이다. 그래서 .i를 순순 C파일이라고 한다.

그러면 main.asm은 메모장으로 열어보겠다

 

이런 화면이 나타난다. 위의 C프로그램으로 열었던 것보다 촘촘하게 글자가 붙어있다.이 asm파일은 순수 파일인 main.i를 어셈블리어로 바꾼 파일이다. 이 어셈블리를 완벽하게 다룬다면 C언어가 필요없다. 그러나 어셈블리를 모르므로....... 보기만 해도 머리가...

이것을 나중에 만든다던데 ㄷㄷ;

 

암튼 이제는 아래그림과 같이 main.c를 복사하여 사본파일을 뒤에 확장자 .dat로 바꾼다.

 

이것을 C언어 프로그램을 연결하던지 C언어 프로그램을 직접열고 드래그해서 끌어오면 다음과 같은 화면이 생성된다.

16진수 코드로 되어 있는 코드를 볼 수 있다. 제일 앞에 4D 5A를 마우스로 드래그 하면 오른쪽에 MZ로 해석이 된다. 이것은 main.exe 파일 고유의 000이다.

다음음 bmp파일과 jpg파일을 C언어로 연결한 모습이다. 당연히 확장자를 각각 .dat로 바꾼 뒤 연결한다.

 

bmp파일

 

 

 

jpg파일

 

이론 수업!!

ALU

CU

Register

Register에서 Alu로 명령을 하는데 이것을 프로그램이라고 부른다.

cpu안에 이 3대 구성요소가 존재하며, 이것을 통합하여 core라고 부른다

 

컴파일은 간단히 말해서 기계어 -> 컴퓨터 언어로 바꾸는 과정을 통틀어 컴

파일이라고 한다.

컴파일 과정을 살펴보자.

실행.exe <- 0101011101<- mov ax.bx <- ax=bx<- 프로그램.c

0101011101은 어셈블리어를 통합하여 기계어로 바꾸어 놓은 상태. 즉, 컴퓨터 언어로 바꾸어 놓은 상태이다.

mov ax.bx는 어셈블리어이다.

실행.exe는 기계어를 링크시켜서 만들어내 실행 파일. 우리 인간이 컴퓨터 화면으로 볼 수 있게 윈도우에 맞춰서 연결하는 것을 링크이며 이 프로그램을 링커라고 한다.

 

ax=bx 전처리된 순수한 파일.i이다. ax=bx, mov ax.bx, 0101011101은 다 똑같은 말이다. 그런데 그것을 순수 C파일, 어셈블리어, 목적파일인 기계어로 바꾸어진 형태로 서로가 달리 보인다. 여기서, 알 수 있는 사실은 우리가 0101011101처럼 기계어를 알면 C언어를 배울 필요가 없다. 그러나 0101011101을 다알기는 전문가가 아니면, 거의 불가능하므로 C언어를 통하혀 컴파일 하여 프로그램을 작성을 하는 것이다.

 

 

컴퓨터의 구조(미완성)

ppt 참고

 

컴퓨터 구성.ppt