본문 바로가기

MASM

[MASM 강좌] 튜토리얼 3 : A Simple window 튜토리얼 3: A Simple Window 이번 튜토리얼에서는 화면 위에 모든 기능을 가지고 있는 윈도우를 생성하는 Windows 프로그램을 만들어 보도록 하겠습니다. 예제 파일은 여기에서 받으시기 바랍니다. 이론: Windows 프로그램은 GUI 를 위해서는 API 함수에 매우 의존적인데, 이는 사용자나 개발자 모두에게 도움이 됩니다. 사용자는 Windows 프로그램들의 GUI가 다 비슷하기 때문에, 처음 접하는 프로그램이라도 별도의 GUI 작동법을 배우지 않아도 됩니다. 그리고 프로그래머에게는 충분히 검증되어 바로 사용할 수 있는 GUI 코드를 제공합니다. 한편으로는 프로그래머에게 조금 더 복잡해 졌습니다. 창, 메뉴, 아이콘들 같은 GUI 오브젝트(object)들을 만들거나 조작하기 위해서 프로그래.. 더보기
[MASM 강좌] 튜토리얼 2 : MessageBox 튜토리얼 2: MessageBox 이번 튜토리얼에서는 "Win32 assembly is great!" 을 출력하는 메세지 박스를 보여주는 완전한 Windows 프로그램을 만들 것입니다. 예제파일은 여기에서 받으실 수 있습니다. 이론: Windows는 윈도우 프로그램을 위해 많은 리소스를 제공합니다. 그 중심에 Windows API(Application Programming Interface)가 있습니다. Windows API 는 매우 유용한 함수들을 한데 모아놓은 것이며, Windows 에 내포되어 있기 때문에 Windows 프로그램에서 바로 사용할 수 있습니다. 이러한 함수들은 kernel32.dll, user32.dll, gdi32.dll 과 같은 동적링크 라이브러리(DLLs)들에 저장되어 있습니다... 더보기
[MASM 강좌] 튜토리얼 1 : 기본 안녕하세요? 언더입니다. 요즘들어 어셈블리 강좌를 쓰면 좋을 것 같다는 생각을 많이 하였습니다. 그리고 어디서부터 어떻게 시작하면 좋을까 생각했지요. 그러던 중 매우 훌륭한 글을 웹에서 발견하였습니다. 그리하여 무능한 제가 어설픈 강좌를 하는 것 보다는 이것을 번역하여 올리는 것으로 대체할까 합니다. 원문 자체가 워낙 잘 되어 있어서, 그대로 번역하려고 많이 노력할 것입니다. 더불어 번역에 대한 허가를 받으려고 연락을 시도하였지만, 연락이 닿지 않았습니다. 혹시 문제가 되면 연재를 중지하도록 하겠습니다. 원문은 매번 게시글 하단에 게재하도록 하겠습니다. 튜토리얼 1 : 기본 본 튜토리얼에서는 여러분이 MASM 사용법을 알고 있다고 가정합니다. 만약 MASM에 대해서 잘 알지 못한다면 본 튜토리얼에 앞서 .. 더보기
MASM - DLL 만들기 Introduction 지난 시간에 약속한대로 이번 시간에는 MASM 을 이용하여 DLL을 만들고, DLL을 이용하는 방법에 대해서 설명하도록 하겠습니다. 물론 Visual Studio 2008 환경에서 설명하도록 하겠습니다. DLL 만들기이 예제에서는 DllTest.dll 을 생성하고, 이를 사용하도록 하겠습니다. DllTest.dll 안에는 MsgBoxFunction 이라는 Funcion 하나가 들어 있습니다. 소스 파일명은 Test.asm 입니다. DLL을 생성하기 위해서는 Def 파일을 추가로 작성해 주셔야 합니다. Test.asm 코드 .386 .model flat,stdcall option casemap:none include d:\development\masm32\include\windo.. 더보기
Visual Studio 2008 에서 MASM 개발하기 Introduction 어셈블리(Assembly)라고 하면 보통 '너무 오래된 언어', '구닥다리 언어', '배우기 어려운 언어', '외계문자' 등의 생각을 하는 분들이 많이 있습니다. =_= 하지만 어셈블리는 알고보면 정말 재미있고, 흥미로운 언어임에 틀림 없습니다. 그리고 어셈블리는 절대 사라지지 않을 멋진 녀석입니다. O/S를 만들때도, C언어로 만들긴 하지만 kernel 은 아직도 어셈블리로 만든다고 합니다. 그만큼 강력하고 무엇이든 할 수 있는 강한놈이죠. 하지만 처음 언어가 나온지 오랜 시간이 지난만큼, 다른 언어에 비해 정보를 얻기 힘이 듭니다. 오늘은 어셈블러에는 어떤 종류가 있고, Visual Studio 에서 어떻게 개발할 수 있는 지에 대해서 알아보도록 하겠습니다. 어셈블러(Assem.. 더보기