문제

내 어셈블리 언어 클래스의 경우 DPMI를 사용하여 DOS 프로그램을 작성합니다. 불행히도, 나는 항상 32 비트 Windows 시스템에 액세스 할 수 없습니다. 나는 내가 사용하는 거의 모든 컴퓨터에 데비안 가상 머신이 설치되어 있습니다.

DOSBOX와 DOSEMU가 모두 설치되었습니다. DOS가 아닌 Linux에서 프로그램을 조립하고 컴파일 할 수있는 방법이 있습니까? 나는 NASM을 사용하고 있으므로 조립 DOS 형식을 얻는 데 아무런 문제가없는 것 같습니다. 그러나 C 코드를 사용하여 컴파일러를 통해 실행하고 DOS 실행 파일 (GCC 또는 MINGW 사용)을 얻는 데 어려움이 있습니다.

이 작업을 수행 할 수있는 방법이 있습니까? 아니면 DOS에 모든 도구를 설치해야합니까?

도움이 되었습니까?

해결책

GCC를 사용하여 DOS 애플리케이션을 컴파일 할 수 있는지 확실하지 않습니다. 오래 전에 DJGPP (또는 그와 비슷한 것)라는 GCC 컴파일러 변수가있었습니다. 그래도 작동하지 않았습니다.

요즘 DOS 용 GCC를 크로스 컴파일 할 수있는 기회는 거의 0입니다.

이전 Watcom 컴파일러에게 시도해 보는 것이 좋습니다. 기본 DOS 컴파일러이며 DPMI 구현은 DOSBox의 매력처럼 작동합니다. NASM 컴파일 객체 파일과의 인터페이스는 문제가되지 않습니다 (나는 몇 년 동안 그렇게했습니다)

오늘날 컴파일러는 오픈 소스로 만들어졌으며 OpenWatcom이라고합니다.

http://www.openwatcom.org/index.php/main_page

다른 팁

BCC 데비안에 있으며 8080까지 8080에 대한 괜찮은 코드를 생성 할 수 있습니다. -Md MS-DOS 이진을 생성하도록 전환하십시오.

아마도 가장 쉬운 방법은 작업에 표준 DOS 도구를 사용하는 것입니다.

DOSBOX 정말 좋은 에뮬레이터입니다.

DJGPP는 엄청나게 설치하기 쉽고 최소 3 개의 .zip 만 필요합니다.

  1. BNU219B.ZIP (어셈블러, 링커, 사서)
  2. GCC441B.ZIP (C 컴파일러)
  3. DJDEV204.ZIP (LIBC, 헤더)

http://www.delorie.com/djgpp/getting.html

unzip *.zip -d c:\djgpp && 
set DJGPP=c:\djgpp\djgpp.env &&
path c:\djgpp\bin;%PATH%

gcc myfile.c -o myfile.exe

DOS 호환 출력을 생성하려면 DOSEMU에서 DOS 호스팅 컴파일러를 사용해야합니다 (DOSBOX가 아님 !! 너무 느리고 버기, 게임만을 의미 함) 또는 Linux 호스팅 크로스 컴파일러를 사용해야합니다 (DJ의 사이트는 다음에 있습니다. RPMS).

그러나 100% 16 비트 코드를 원한다면 다른 것을 사용해야합니다 (예 : OpenWatcom). OpenWatcom은 Linux (Beta !!) 호스트 및 대상 (공유 Libs, IIRC 없음)을 지원하지만 GCC로 직접 컴파일해야 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top