16비트 프로그램을 만들 때의 linker 관련 질문입니다.(windows98, masm6.14)
글쓴이: dalant019 / 작성시간: 토, 2010/05/22 - 1:53오후
.model small .stack 100h .386 .data msg byte "hello" .code main proc mov ax, @data mov ds, ax mov ah, 40h mov bx, 1 mov cx, sizeof msg mov dx, offset msg int 21h .exit main endp end main
위는 책에 있는 테스트 예제입니다. win95, 98 또는 me에서만 실행이 된다고 하길래, vmware를 이용해 win98 se를 설치하고(오랜만에 보니 너무 반가^^) masm6.14도 깔았습니다.
ml /c hello.asm
위와 같이 어셈한 뒤, 아래와 같이 링킹을 했는 데,
link hello.obj
이런 말을 하네요.
LINK : error : Segment reference in fixup record hello.obj : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
어떤 라이브러리도 사용하지 않기에(딱 제가 짠 코드만 들어간 .exe파일안을 보고 싶었거든요) 간단하게 링킹이 될 줄 알았는 데,
어떤 특별한 링커 옵션이 필요한 건 가요?
상위 버전(10)은 link16이라고 따로 있는 것 같아,(요녀석은 윈98에 설치가 안됐어요) 16비트 프로그램에 맞게 링킹하라고 지시하는 옵션값이 있나해서 찾아 봤더니 그런 건 없는 거 같던데...
그래서 제 결론은 "16비트 링커를 구하라"인데, 그러면 될까요?(현재 제 링커는 5.1 버젼)
읽어주셔서 감사/꾸벅
---
피에쓰
masm을 이용한 어셈블부터 exe파일을 만들까지의 내부 동작 과정을 상세히 알고 싶은데, 다시 맗하면, ml이나 link에 있는 옵션들 을 제대로 알고 쓰고 싶습니다.
유용한 레퍼런스가 없을 까요? 책이나 웹페이지 등 아무것이나 다 좋습니다.^^
피에쓰2
쓰고 나서 KLDP 로고를 보고 깨달음! 제 글이 여기에 맞지 않네요. 죄송합니다, 여기밖에 아는 곳이 없어요.TT
Forums:
댓글 달기