간단한 어셈블리어 예제인데 실행이 안 됩니다.

hiluciano의 이미지

org 100h

section .data
message db "Hello, World!$"

segment .text
global main

main:
mov ah, 09h ; int 21h-09h: 문자열 출력
mov dx, message ; dx: 출력할 문자열
int 21h

mov ax, 4ch
int 21h

xor eax, eax
ret

Windows 7 64비트 버전 사용중이고 NASM으로 이 코드를 어셈블해서 실행하려고 하니까

"지원되지 않는 16비트 응용 프로그램" 이라는 제목으로
64비트 버전 Windows와 호환되지 않기 때문에 시작 또는 실행할 수 없다는 창이 뜹니다.
32비트 운영체제에서 실행하는 방법밖에 없나요?

아니면 NASM에서 printf같은 C함수 라이브러리 링크시켜서 해당 함수들을 호출하는 방법이 있나요?

File attachments: 
첨부파일 크기
Image icon 없음.png31.56 KB
mirheekl의 이미지

DOSBOX로 연습하시면 문제없이 잘 될 듯. 또는 16비트 환경 에뮬레이션이 가능한 버추얼 머신을 써도 비슷할테고.

--