반응형

어셈블리 언어로 작성된 프로그램 실행 시 인수를 확인해 보자.

 

소스를 입력하고 빌드한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
include masm32rt.inc
 
.data
    strTitle db "Command Line Arguments",0
    strMessage db 128 dup(?)
 
.code
start:
    invoke GetCL, 1, ADDR strMessage
    invoke MessageBox, 0, ADDR strMessage, ADDR strTitle, MB_OK
    invoke ExitProcess, 0
end start
 

 

GetCL 함수의 첫 번째 인수로 1을 주면 프로그램의 첫 번째 인수가 저장된다.

 

첫 번째 인수 'abcd'가 출력된다.

 

1
2
3
4
5
6
7
8
9
10
11
12
include masm32rt.inc
 
.data
    strTitle db "Command Line Arguments",0
    strMessage db 128 dup(?)
 
.code
start:
    invoke GetCL, 0, ADDR strMessage
    invoke MessageBox, 0, ADDR strMessage, ADDR strTitle, MB_OK
    invoke ExitProcess, 0
end start
 

 

GetCL 함수의 첫 번째 인수로 0을 주면 프로그램 파일명이 저장된다.

 

파일 이름 First.exe가 출력된다.

 

반응형
Posted by J-sean
:
반응형

비주얼 스튜디오로 어셈블리 프로젝트를 시작해 보자.

 

Empty Project를 만든다.

 

프로젝트에 적당한 파일을 add한다. 확장자만 asm으로 지정하면 된다.

 

Solution Explorer - Project Name 우클릭 - Build Dependencies - Build Customizations...

 

masm(.targets, .props)를 선택한다.

 

 

소스파일 우클릭 - Properties

 

Item Type - Microsoft Macro Assembler를 선택한다.

 

32비트 프로그램을 개발한다면 x86을 선택한다.

 

별도의 라이브러리를 사용한다면 아래와 같이 세팅한다.

Irvine.zip
1.30MB

 

Solution Explorer - Project Name 우클릭 - Properties

 

 

사용할 라이브러리의 디렉토리 경로를 입력한다.

 

라이브러리 이름을 입력한다.

 

Microsoft Macro Assembler - General - Include Paths에 라이브러리 경로를 한 번 더 입력한다.

 

소스를 입력한다.

 

 

빌드하고 실행한다.

 

Syntax Highlighter는 AsmDude나 ChASM을 사용한다.

 

ChASM - works with Visual Studio 2022

AsmDude - works with 2015, 2017, 2019

 

ChASM.vsix
0.27MB

 

※ 참고

 

Release 모드에서 SAFESEH 관련 LNK1281, LNK2026 에러가 발생할 수 있다.

 

Microsoft Macro Assembler - Advanced - Use Safe Exception Handlers를 Yes (/safeseh)로 바꾼다.

 

 

작업중인 Sorce.obj 파일의 에러는 해결되었지만 라이브러리 파일의 에러는 해결되지 않았다.

 

Linker - Advanced - Image Has Safe Exception Handlers를 No (/SAFESEH:NO)로 바꾼다.

 

에러가 사라졌다.

 

※ 참고

리스트 파일을 생성해야 한다면 아래와 같이 세팅한다.

 

Microsoft Macro Assembler - Listing File - Assembled Code Listing File - 파일 이름을 지정한다.

 

 

프로젝트를 빌드하면 리스트 파일이 생성된다.

 

반응형
Posted by J-sean
:

MASM 6.11

Assembly 2022. 12. 16. 15:31 |
반응형

DOS에서 실행 가능한 마지막 MASM 버전 6.11

 

 

masm611.zip
11.29MB

문서 포함

 

Microsoft Macro Assembler 6.11.zip
7.03MB

3.5인치 플로피 디스크 IMG 파일

 

반응형
Posted by J-sean
: