어셈블리어 MASM 컴파일.
그림 1> MASM으로 컴파일전 필요한 파일들.
1. 이전에는 NASM으로 C 파일과 컴파일을 하였는데 이번에는 MASM으로 컴파일을 하였다. 그림1>에서는 MASM으로 컴파일 하기전에 필요한 파일들이당... 그런데 다른 파일 들은 빨간색인데 색이 다른 하나가 있는 것을 볼 수 있을 것이다. 그 파란색으로 된 windbg 파일은 디버깅을 하는데 필요한 파일이라서 따로 색을 주었고 지금은 신경쓰지 않아도 된당... ^^
그림 2> ml 이라는 명령어로 First.obj 파일 생성하기.
2. 그림 2>에서는 링크를 걸리 위해 필요한 OBJ 파일을 생성 하기 위해서 ml 이라는 명령어를 썼다. 그러나 보면 알수도 있겠지만 NASM 컴파일과는 명령어가 다른 것을 볼 수 있다. NASM 에서는 nasm -f win32 First.asm 이었지만 MASM에서는 ml /c /coff First.asm 이라고 쓴다. 암튼 ml 로 OBJ 파일을 생성한다.
그림 3> First.obj 생성 확인.
3. 그림 3>에서 First.obj 파일이 생성 된 것을 확인 할 수 있당... 그럼 성공? 당연한 얘기 일 것이당...
그림 4> link 명령어로 컴파일.
4. 그림 4>에서는 실행 파일을 생성하기 위해서 링크를 걸기 위해 link라는 명령어를 사용 하고 있다. 여기서 또 한가지 NASM 에서는 링크를 걸리 위해 cl 이라는 명령어를 사용하는데 cl first.obj io.obj 이렇게 하면 자동 적으로 링크가 걸렸었다. 그러나 MASM은 link라는 명령어를쓰고 아래와 같이 사용 한다.
link /subsystem:console /entry:start /out:main.exe First.obj io.obj Kernel32.Lib
위 에서 알수 있듯이 컴파일 방식이 다르다는 것을 알 수 있다~~ 그럼 제대로 링크가 걸렸는지를 봐야 것징...ㅎㅎ
그림 5> 실행 파일 생성. 5. 그림 5>에서 원하던 결과가 제대로 나온 것을 확인 할 수 있당.. main.exe 파일이 나올 수 있었던 이유는 out:main.exe 에서 결과가 나올 파일 명을 미리 만들어 주었기 때문에 main.exe가 나온 것이당.. 그럼 이참에 결과도 테스틑 해보겠슴돵.. 그림 6> 실행 파일 실행 결과. 6. 그림 6>에서 실행파일을 실행 시켜본 결과 되는 것을 확인 했습니당...ㅎㅎ
'코스웨어 > 12년 내장형하드웨어' 카테고리의 다른 글
시리얼 ARM소스입니다 -정철 (0) | 2012.08.28 |
---|---|
[Assembly]2012/08/27 작업일지(어셈블리어 더하기) - by 이창현 (0) | 2012.08.27 |
2012/8/24 금요일 디테일 정리 1 (0) | 2012.08.27 |
[Assembly] NASM 설치 방법!! (0) | 2012.08.27 |
[Assembly] 8월 24일 업무일지 By.정철 (2) | 2012.08.24 |
8월 24일 금요일 오후에한 수업내용(windbg사용방법) (0) | 2012.08.24 |
Windbg 사용방법 (1) | 2012.08.24 |
asm 컴파일 (0) | 2012.08.24 |