MASM 컴파일러에 대한 소프트웨어 권장 사항

MASM 컴파일러에 대한 소프트웨어 권장 사항

나는 ~을 찾고 있었다매스엠우분투용 컴파일러. 모든 개발 도구를 Ubuntu로 옮겼습니다. 이제 저는 MASM 수업을 듣고 있는데 MASM 컴파일러가 절실히 필요합니다. 나는 몇몇을 보았다YouTube의 동영상. 그들은 주로 DOS 에뮬레이터를 사용하고 거기에 MASM 컴파일러를 설치합니다. 나는 실제로 이런 것을 찾는 것이 아닙니다.

내가 찾고 있는 것은 다음과 같습니다.

  • 이상적으로는 프로그램 문제를 해결하기 위한 로그가 있을 것입니다.

  • 그래픽 사용자 인터페이스는 장점이지만 필요하지 않습니다.

  • 나는 컴파일러가 Windows 에뮬레이션이 아닌 것을 선호합니다(WineHQ를 사용할 필요는 없습니다).

저는 현재 MASM 패키지와 함께 Sublime Text를 사용하고 있으므로 IDE가 필요하지 않습니다. 하지만 사용 중인 솔루션이 Visual Studio의 가벼운 대안과 같이 IDE라면 괜찮을 것입니다.

이러한 상황에서 좋은 MASM 컴파일러는 무엇입니까?

답변1

나는 jwasm을 제안하고 싶습니다 (on소스포지그리고 계속구글 코드)

Google 페이지에는 많은 대안이 나열되어 있으며 jwasm이 이들보다 나은 이유도 보여줍니다. 좋은 제안을 받고 대체 프로그램을 얻을 수 있도록 Google 코드 페이지에서 직접 복사하십시오. 당신에게 맞는 것이 무엇인지 결정하려면 그것들을 시도해야 할 것입니다. JWasm은 Linux에서 작동합니다. 다른 사람들은 모두 그렇지 않을 수도 있습니다.

JWasm

특징

  • 무료.
  • 출력 형식 Intel OMF, MS Coff(32 및 64비트), Elf(32 및 64비트), Bin 및 DOS MZ에 대한 기본 지원.
  • 사전 컴파일된 JWasm 바이너리는 DOS, Windows 및 Linux에서 사용할 수 있습니다. OS/2 및 FreeBSD의 경우 makefile이 제공됩니다.
  • SSE4.2까지의 명령어가 지원됩니다.
  • JWasm은 C로 작성되었습니다. 소스는 이식 가능하며 Open Watcom, MS VC, GCC 등에서 성공적으로 테스트되었습니다.
  • JWasm의 소스 코드는 무료 상업용 및 비상업적 사용을 허용하는 Sybase Open Watcom Public License에 따라 공개됩니다.

다른 어셈블러에 비해

매스엠

  • JWasm은 무료이며 인위적인 라이센스 제한이 없으며 모든 OS용 바이너리를 만드는 데 사용할 수 있습니다.
  • JWasm은 오픈 소스입니다. 성가신 MASM 버그는 잊어버리세요...
  • 더 많은 출력 형식이 지원됩니다(Bin, ELF).
  • 선택적으로 매우 작은 개체 모듈을 만들 수 있습니다.
  • Open Watcom에 대한 더 나은 지원(예: 레지스터 기반 호출 규칙)
  • JWasm은 Masm보다 빠릅니다.

타스마

  • JWasm을 사용할 수 있습니다. TASM은 법적으로 이용 가능하지 않습니다. 그리고 일종의 TASM 클론인 LZASM은 IDEAL 모드만 이해합니다.
  • JWasm은 STRUCT 및 UNION을 완벽하게 지원합니다. TASM은 이 영역에서 심각한 제한과 버그를 가지고 있습니다.
  • JWasm은 거의 모든 MASM v6 기능(PROTO, INVOKE, hll 지시문 등)을 지원하며 대부분은 TASM이 이해하지 못합니다.
  • JWasm은 SSE4까지의 지침을 지원하고 TASM은 뒤처져 있습니다.

POASM

  • JWasm은 오픈 소스입니다.
  • JWasm은 OMF, ELF 및 바이너리 형식의 출력을 추가로 지원합니다.
  • JWasm은 16비트 및 세그먼트화된 메모리 모델을 지원합니다. POASM은 FLAT만 이해합니다.
  • JWasm은 MASM의 매크로 구현과 호환됩니다. POASM은 그렇지 않습니다.
  • POASM에는 목록 파일을 생성하는 기능이 없습니다.

WASM

  • JWasm의 매크로 기능은 Wasm보다 훨씬 뛰어납니다.
  • JWasm은 Masm v6 구문을 완벽하게 지원합니다. Wasm에서는 Masm v6에서 추가된 대부분의 기능이 누락되었습니다.
  • OMF 외에도 JWasm은 COFF, ELF 및 바이너리 출력 형식을 지원합니다. JWasm은 64비트를 지원합니다.

답변2

jwasm은 POSIX 기반 호출 규칙(System V와 같은 시스템)에 대한 지원이 부족하다는 점을 지적하는 것이 중요하다고 생각합니다. 따라서 proto/procs와 같은 기능을 매개 변수와 함께 사용하려는 경우 해당 매개 변수가 해당 매개 변수를 통해 전달된다는 점에 유의하세요. C/C++ 컴파일러에 의한 레지스터이지만 jwasm은 올바른 레지스터를 사용하지 않고 스택을 매개변수로 사용하므로 64비트 아키텍처에서 평소처럼 매개변수 이름을 사용할 수 없습니다.

관련 정보