MASM에 관해서 질문 드립니다.

redrattus의 이미지

.386
CodeSeg segment
Main proc
start:
mov ah,0h
int 16h
cmp al,0h
jz finish
mov ah,0eh
int 10h
jmp start
finish:
int 20h
Main endp
CodeSeg ends
end Main

제가 위와 같이 test.asm 파일을 작성한 뒤에 ml /c /coff test.asm을 하니,

warning A4023: with /coff switch, leading underscore required for start address : Main

그런뒤 link test.obj를 하였습니다.

그런데 LINK: fatal error LNK1221: a subsystem can`t be inferred and must be defined.라고 뜨네요..

왜 그럴까요?

허접한 질문이었습니다.^^;

Fe.head의 이미지

잘 모르겠습니다만..

 CodeSeg segment
 ASSUME CODE:CodeSeg, DATA:CodeSeg, SS:CodeSeg
Main proc
 start:
  mov ax, cs
  mov ds, ax 
 

로 시작 해보시지요^^

-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐?
그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

Necromancer의 이미지

COFF 오브젝트 파일 포맷은 EXE 생성하는데는 적합하지 않습니다. (DJGPP gcc가 이걸 씁니다)
EXE생성할때 많이쓰는게 Microsoft OBJ이고, masm의 디폴트 파일포맷이죠.

/coff 빼고 어셈블을 하시고, MASM에 시작점 지정하는 지시어 있습니다. 그거 필히 쓰십시오.

요새는 nasm을 취미로 건드리는지라 masm은 거진 다 까먹었네요 -_-;

Written By the Black Knight of Destruction

shint의 이미지

컴파일은 되는데. 성공 여부는 잘 모르겠습니다.

//
masm sdk를 다운 받아보면.
컴파일과 배치파일을 생성하는 예제를 참고해보세요.
 
 
//관련 링크 모음
Microsoft MASM Programmer's Guide 가이드북이나 서적을 참고.
네이버 구글 검색
http://www.masm32.com/
http://ac3lucifer.tistory.com/53
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=146797687&qb=bWFzbSBBU1NVTUU=&enc=utf8&section=kin&rank=2&search_sort=0&spq=0
http://www.cs.virginia.edu/~evans/cs216/guides/vsasm.html
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=69216115&qb=bWFzbSBBU1NVTUU=&enc=utf8&section=kin&rank=4&search_sort=0&spq=0
http://cafe.naver.com/cmenia/3140
http://i0nucleus.egloos.com/2219671
http://www.delphi.co.kr/?document_srl=121444
http://kldp.org/node/78935
http://kldp.org/node/74837
http://forums.codeguru.com/showthread.php?352611-fatal-error-LNK1190-invalid-fixup-found
http://www.winasm.net/forum/index.php?showtopic=2326
http://www.winasm.net/forum/index.php?showtopic=2251
http://blog.naver.com/chinsong2/140161131000
http://easymasm.blogspot.kr/p/download.html
 
//
http://objectmix.com/asm-x86-asm-370/69349-masm-link-errors.html
; C:\theStarman\asm\jkirwin\MASM>ml /Fl /Sa /WX DOSWIN.ASM
; Object Modules [.obj]: DOSWIN.obj /t
; Run File [DOSWIN.com]: "DOSWIN.com"
; List File [nul.map]: NUL
; Libraries [.lib]:
; Definitions File [nul.def]:
 
 
@REM set path = %path%; c:\nasm
@REM c:\nasm\nasmw -o asm.exe -l asm.lst asm.a
 
@REM C:\masm32\bin\ml /c /Fl /coff asm.asm
@REM C:\masm32\bin\ml /c /coff asm.lst asm.asm
@REM C:\masm32\bin\ml /coff /Cp /Iasm.asm /link /subsystem:window /libpath:c:\masm32\lib
@REM C:\masm32\bin\ml /coff asm.asm
@REM C:\masm32\bin\link asm.obj
@REM C:\masm32\bin\ml /c /Fl asm.asm
@REM C:\masm32\bin\link /subsystem:console /entry:start /out:main.exe asm.obj
@REM C:\masm32\bin\link16 /subsystem:console /libpath:c:\masm32\lib /entry:start /out:main.exe asm2.obj
 
@REM //--------------------------------------------------------------------------------------
@REM masm32 소스로 컴파일 하기1
@REM c:\masm32\bin\ml /c /coff "asm3.asm"
@REM c:\masm32\bin\PoLink /SUBSYSTEM:WINDOWS /merge:.data=.text /merge:.rsrc=.text "asm3.obj"
@REM //--------------------------------------------------------------------------------------
 
@REM //--------------------------------------------------------------------------------------
@REM masm32 소스로 컴파일 하기2
C:\masm32\bin\ml /c /I"C:\masm32\include" asm2.asm
C:\masm32\bin\link16 asm2.obj
@REM //--------------------------------------------------------------------------------------
 
@REM //--------------------------------------------------------------------------------------
@REM masm32 소스로 컴파일 하기3
C:\masm32\bin\ml /c /I"C:\masm32\include" asm3.asm
C:\masm32\bin\link16 /subsystem:console /libpath:c:\masm32\lib /entry:start /out:main.exe asm3.obj
@REM //--------------------------------------------------------------------------------------
 
@REM //--------------------------------------------------------------------------------------
@REM masm32 소스로 컴파일 하기4
c:\masm32\bin\ml /c /coff asm.asm
c:\masm32\bin\link -lib *.obj /out:asm.exe
@REM //--------------------------------------------------------------------------------------
 
pause

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.