2007년 09월 29일
[참고] Visual Studio .Net에서 MASM 컴파일
1. Visual Studio .Net 환경에서 MASM 8.0 환경 설정
MASM을 사용하시는 분들은 대부분이 6.15 버전을 사용하고 계실꺼라고 생각이 든다.(내 생각뿐??ㅡㅡㅋ)
닷넷부터 MASM 8.0을 지원해 주고 있기 때문에 .NET 환경에서의 MASM 환경 설정을
해보도록 하자.
2. Creating a Project from Scratch
지금부터 MASM으로 컴파일 하기 위해서 새로운 프로젝트를 생성을 해보자. 아래의 설명하는 방법 이외에도
Sample 프로젝트 파일을 이용하면 간단히 설정이 완료되지만 우선은 새로운 프로젝트 파일을 생성하는 것부터
알아보도록 하겠다.
닷넷의 버전이 Express 버전일 경우 MASM 8.0을 다운 받아 설치해야 하고, Professional 버전일 경우는 아래의
내용을 따라가면 된다.
새로 생성할 프로젝트의 이름은 아무것으로도 정해도 되지만, 앞으로의 설명은 MyProject 이름을 기준으로 하여
설명하도록 한다.
2-1 시작하기 전에...
MASM 8.0에 대한 설정 내용은 http://kipirvine.com/asm/examples/IrvineExamples.exe 을 다운받아 설치 후
진행 하도록 한다.(설치경로: C:\Irvine)
2-2 Visual Studio
File 메뉴에서 New Project를 선택한다.
New Project dialog 화면에서 Other Languages -> Visual C++ -> General -> Empty Project 순으로 선택한다.
저장될 위치를 선택하고, Project의 이름을 설정한다. ( 다른 옵션들은 변경하지 말자.)
OK 버튼을 선택한다.
2-3 MASM 파일 추가
윈도우 탐색기 또는 내 컴퓨터를 이용해서 main.asm을 새로 만든 Project 폴더에 추가한다.
다시 Visual Studio로 돌아가서 프로젝트 이름에서 오른쪽 마우스 버튼을 눌러 Add를 선택 후 Existing Item을 선택해서 현재 프로젝트 폴더에 있는 main.asm 파일을 추가한다.
파일을 추가할 경우 아래와 같은 dialog가 보여질수 있는데 MASM을 선택 후 OK 버튼을 누르자.Project 메뉴에서 Custom Build Rules를 선택하고면 아래와 같은 그림의 dialog를 볼수 있을 것이다. 여기서는 소프트웨어의 의존성을 설정하는 것인데 우리는 MASM을 사용할 것이므로 Microsoft Macro Assembler를 선택하자.
여기까지 기본적인 설정은 끝났다. 다음으로는 프로젝트에 대한 몇가지 필요한 속성들을 설정해주어야 된다.
2-4 Project Properties Settings
Project 메뉴에서 Project Properties를 선택하자.
Project Property Pages에서 Configuration Properties를 선택한 후 Microsoft Macro Assembler 8.0 이름으로 되어있는 것을 확장하자.
Microsoft Macro Assembler 8.0 하위에 있는 General을 선택 후 보이는 우측의 목록중 Include Paths 옵션을 C:\Irvine로 디렉토리를 설정하자. 이 설정은 어셈블러에게 확장자가 ".inc"으로 된 파일의 위치를 알려주는 것이다.
Configuration Properties 목록에서 Linker를 찾아 Input을 선택한 후 Additional Dependencies 에 user32.lib, irvine32.lib를 추가하자.
General을 선택하여 Addtional Library Directories에 C:\Irvine 를 추가하여 Linker가 Irvine32.lib 파일을 찾을수 있게 하자.
Debugging을 선택하여 Geneate Debug Info 목록을 Yes로 설정하자.
System을 선택하여 SubSystem 목록을 Console로 설정하자.
2-5 MASM syntax highlighting
아래의 화면과 같이 Visual Stdio 및 Visual C++ 2005 Express 에서는 MASM 예약어에 대한 구문 강조를 지원한다.
구문 강조를 위해서는 두가지 작업만 해주면 되겠다.
http://kipirvine.com/asm/files/usertype.dat 에서 usertype.dat을 다운받아 C:\Program Files\Microsoft Visual Studio 8\Common7\IDE folder에 복사해 넣는다.
Visual Studio에서 Tools 메뉴에서 Options를 선택 후 Text Editor -> File Extension에서 아래와 같이 입력 후 OK를 선택한다.
현재 설정을 저장하면 설정이 완료된다.
2-6 Hello World 출력
이제 모든 설정이 끝났다. 이제 Hello World.exe를 작성해서 실행시켜 보도록 하자.
새로운 Project를 설정한 후 아래의 코드를 입력하자.
- include irvine32.inc
.data
myMessage byte "Hello World", 0dh, 0ah, 0
.code
main PROC
call Clrscr
mov edx, offset myMessage
call WriteString
exit
main ENDP
END main
컴파일 후 실행을 해보자.
아래와 같은 출력 화면을 볼수가 있다.
2-7 Sample_Project
위의 설정 내용과 같이 각각을 설정해서 하는 방법도 있지만, 이것이 귀찮을 경우
Project_sample.zip 파일을 다운받아 main.asm 의 코드만 새롭게 작성하여 사용해도 된다.
이 글은 스프링노트에서 작성되었습니다.
# by | 2007/09/29 01:10 | ┣ ASM | 트랙백 | 덧글(4)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
include irvine32.inc
.data
myMessage byte "Hello World", 0dh, 0ah, 0
.code
main PROC
call Clrscr
mov edx, offset myMessage
call WriteString
exit
main ENNP <-- 요거 ㅠㅠ.. ENNP(사실 어셈블리 초보인데 이것때매 2시간(??)동안 해맸답니다. ㅠㅠ -> 반드시 ㅠ..main ENDP로 바꾸어 주세요!!
END main
아아앙 ㅜ.ㅜ 내 아까운 2시간 .. ㅠㅠ
그래두.. ..정말 설명 감사하게 봤습니다..
설명 잘 봐주셔서 감사해요~~ㅎㅎㅎ