본문 바로가기
Ghost의 어셈블리어 Note/Ghost의 어셈블리어와 C소스 링크 컴파일

어셈블리어와 C가 결혼? 링크 컴파일...

by dark ghost 2012. 8. 22.
728x90
반응형

어셈블리어와 C소스와 링크 컴파일 하기.

 

   그림 1> OBJ 파일 생성전.

1. 그림 1>에서 각각의 어셈블리어 파일과 C 파일이 있는 것을 확인 할수 있지만 아직 까지 실행 파일을 만들 수 있는 상태가 아니다. 실행 파일을 만들려면 일단 오브젝트 파일인 OBJ확장자 파일을 생성 해야 한다.

 

그림 2> first.asm 컴파일 명령어.

2. 그림 2>에서 first.ams이라는 어셈블리어 파일을 컴파일 하여 OBJ파일을 생성하기 위해 nasm 이라는 컴파일러를 사용 하였다. 일단 컴파일러는 masm 이라고 마이크로 소프트용 어셈블리어 컴파일과 nasm 이라는 컴파일러가 있다. 그 중에서 nasm 이라는 컴파일러로 first.asm 이라는 파일을 컴파일 하여 OBJ 파일을 생성 한다.

 

  그림 3> first.obj 파일 생성.

3. 그림 3>에서 원하는 오브젝트 파일을 얻었다. 그럼 나머지 asm_io.asm 도 컴파일 하여 OBJ 확장자 파일을 생성 해볼까이...

 

  그림 4> asm_io.asm 컴파일 명령어.

4. 그림 4>는 역시 asm_io.obj 파일을 얻기 위해 컴파일을 실행한 화면이다.

 

  그림 5> asm_io.obj 파일 생성.

5. 그림 5>에서도 역시 원하는 오브젝트 파일을 얻을 수 있었다. 그럼 이제 마지막 파일이 driver.c 파일도 OBJ 파일을 얻어 보입시더.. 그러나 이번엔 컴파일 명령어가 다르다.

 

   그림 6> driver.c 컴파일 명령어.

6. 그림 6>에서는 OBJ 파일을 얻기 위해 cl 명령어를 사용 하였고 이유는 확장자가 c 이므로 그렇게 하였고 -c 옵션은 넣지 않으면 링크를 걸기 때문에 제대로 되지 않는다. 그러므로 -c 라는 옵션으로 원하는 OBJ 파일을 얻는당..

 

  그림 7> driver.obj 파일 생성.

7. 그림 7>에서 마지막으로 필요한 driver.obj 파일을 얻었다. 이 얼마나 감격에 겨운가? ㅠㅠ 드뎌 마지막 작업인 링크를 거는 컴파일 만 하면 그렇게 기다리고 기다리던 실행 파일을 얻는 순간이다. ㅎㅎㅎ 그럼 마지막 작업으로 바로 고?

 

  그림 8> OBJ 파일을 링크 시키는 컴파일 명령어.

8. 그림 8>에서 드뎌 기다리고 기다리던 마지막 작업을 완료 하였다. 그림에서 볼수 있듯이 오류도 없고 경고도 없는 것을 확인 할 수 있다.

 

  그림 9> 실행 파일 생성.

9. 그림 9>에서 드뎌 고생의 결과 물인 실행 파일이 생성 된 것 을 확인 할 수있다. 그럼 실행이 되는지도 봐야 되지 않을까?

 

   그림 10> 실행 파일 실행 결과.

10. 그림 10>은 생성된 실행 파일을 실행 시킨 결과이다. 제대로 동작 한다. ㅎㅎ 암튼 결과가 좋은니 참 좋당..

728x90
반응형

댓글