Microsoft 매크로 어셈블러

Microsoft Macro Assembler
Microsoft 매크로 어셈블러
개발자마이크로소프트
초기 릴리즈1981년; 41년 전 (재설정)
안정된 릴리스
14.16.27023.1 / 2017년 3월 7일, 5년 전(2017-03-07)
운영 체제Microsoft Windows 및 MS-DOS
유형어셈블러
면허증.상업의 독점 소프트웨어
웹 사이트docs.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assembler-reference

Microsoft Macro Assembler(MASM)는 MS-DOS 및 Microsoft Windows에서 Intel 구문을 사용하는 x86 어셈블리입니다.MASM 8.0 이후 어셈블리에는 다음 두 가지 버전이 있습니다.하나는 16비트32비트 어셈블리 소스용이고 다른 하나64비트 소스용입니다.

MASM은 Microsoft에 의해 유지되고 있지만 버전 6.12 이후로는 별도 제품으로 판매되지 않았습니다.대신 다양한 Microsoft SDK 및 C 컴파일러와 함께 제공됩니다.최신 버전의 MASM은 Microsoft Visual Studio에 포함되어 있습니다.

역사

MASM의 초기 버전은 [1]1981년으로 거슬러 올라간다.이 제품은 모든 x86 머신의 범용 "Microsoft 매크로 어셈블러" 또는 IBM PC 전용 OEM 버전으로 판매되었습니다.버전 4.0에서는 IBM 릴리스가 폐기되었습니다.버전 3.0까지 MASM은 소형 컴패니언 어셈블러 ASM에도 번들되어 있었습니다.EXE. 64k의 메모리만을 탑재한 PC를 대상으로 한 것으로, 코드 매크로의 사용 등, 풀 MASM 의 기능이 결여되어 있습니다.

4.x 이전의 MS-DOS 버전에는 MASM 및 기타 컴파일러에 의해 생성된 중간 OBJ 파일을 변환하도록 설계된 Microsoft의 LINK 유틸리티가 포함되어 있었습니다.그러나 이 유틸리티를 프로그래밍하지 않은 사용자는 이 유틸리티를 사용하지 않았기 때문에 컴파일러 패키지로 이동되었습니다.

버전 4.0에서는 세그먼트 기술자(.code, .data 등)에 대한 286 명령 및 약칭 니모닉 지원이 추가되었습니다.버전 5.0은 386개의 명령을 지원했지만 여전히 Real Mode 실행 파일만 생성할 수 있습니다.

버전 5.0에서는 MASM은 MS-DOS 애플리케이션으로만 사용할 수 있었습니다.버전 5.1 및 6.0은 MS-DOS [2]OS/2 애플리케이션으로 사용할 수 있습니다.

1992년에 출시된 버전 6.0에서는 기존의 높은 수준의 레코드와 더불어 "invoke" 및 기타 높은 수준의 구성 요소와 함께 전달되는 매개 변수가 추가되었다.연말까지 버전 6.1A에서 Visual C++에서 생성된 코드와 호환되도록 메모리 관리를[how?][clarification needed] 업데이트했습니다.1993년에 보호 모드 32비트 어플리케이션과 Pentium 명령어세트에 대한 완전한 지원이 추가되었습니다.당시 MASM 바이너리는 (Par Lap TNT DOS 익스텐더를 사용하여) "bi-modal" DOS 확장 바이너리로 출고되었습니다.

버전 6.12 ~ 6.14는 버전 6.11의 패치로 구현되었습니다.이러한 패치로 바이너리 형식이 네이티브 PE 형식으로 변경되었습니다.버전 6.11은 MS-DOS에서 실행되는 MASM의 마지막 버전입니다.

1997년 말까지 MASM은 Windows 95를 완전히 지원했으며 AMD 고유의 지침을 [3]포함했습니다.

1999년에 인텔은 SIMDMMX 명령용 매크로를 출시하였으며, 그 직후 MASM이 네이티브로 지원하였습니다.2000년 6.15 릴리스에서 마이크로소프트는 MASM을 Visual Studio 툴셋에 포함시키는 대신 별도의 제품으로 지원을 중단했습니다.Windows 98과 호환성이 있었지만 Visual Studio의 현재 버전은 그렇지 않았습니다.[3]64비트 프로세서에 대한 지원은 MASM 8.0과 함께 Visual Studio 2005가 출시될 때까지 추가되지 않았습니다.

2015년 6월 25일 이후에는 버전 번호14.00.23026의 MASM이 3개 이상 존재합니다.Microsoft Visual Studio 2015 Enterprise Edition에는 "amd64_x86" ml이 1개 있고 "x86_amd64" 및 "amd64"라는 2개의 ml64가 있습니다.다른 플랫폼을 대상으로 하는 다른 플랫폼에서 실행됩니다.

  • amd64_x86: 64비트 코드 생성, Windows 32비트 환경에서 실행
  • x86_amd64: 32비트 코드 생성, Windows 64비트 환경에서 실행
  • amd64: 64비트 코드 생성, Windows 64비트 환경에서 실행

MASM에서 지원되는 오브젝트 모듈 형식

이전 버전의 MASM은 MS-DOS 또는 OS/2용 바이너리를 작성하기 위해 사용된 OMF 형식을 사용하여 객체 모듈을 생성했습니다.

버전 6.1 이후 MASM은 Portable Executable(PE/COFF; 포터블 실행[4][5] 파일) 형식으로 객체 모듈을 생성할 수 있게 되었습니다.PE/COFF는 최신 Microsoft C 컴파일러와 호환되며 MASM 또는 C 컴파일러에 의해 생성된 오브젝트 모듈을 정기적으로 혼합하여 Win32 및 Win64 바이너리에 링크할 수 있습니다.

MASM과 호환되는 어셈블리

일부 다른 어셈블러는 복잡한 매크로를 제외하고 MASM용으로 작성된 대부분의 코드를 조립할 수 있습니다.

  • 볼랜드가 개발한 Turbo Assembler(TASM)는 엠바카데로가 나중에 소유했지만 2002년에 마지막으로 업데이트되었지만 여전히 C++BuilderRAD Studio와 함께 제공됩니다.
  • JWasm 매크로 어셈블러, Sybase Open Watcom EULA에 따라 라이센스 부여. 2014년에 최종 업데이트됨.
  • Peles C 개발 환경의 컴포넌트인 Pelle의 매크로 어셈블러.
  • UASM은 JWasm 기반의 무료 MASM 호환 어셈블러입니다.
  • ASMC는 JWasm 기반의 무료 MASM 호환 어셈블러입니다.

혼합 언어 프로그래밍 지원

1987년 버전 5.1 문서에는 "Microsoft BASIC, C, FORTRAN, Pascal" 지원이 포함되어 있습니다."[6]

「 」를 참조해 주세요.

레퍼런스

  1. ^ Watt, Peggy; Christine McGeever (January 7, 1985). "Macintosh Vs. IBM PC At One Year". InfoWorld. Vol. 7, no. 1. pp. 15–16. ISSN 0199-6649. IBM PC 매크로 어셈블러는 1981년 12월에 출시되었습니다.
  2. ^ Marshall, Martin (April 29, 1991). "Macro Assembler Update Adds High-Level Features". InfoWorld. Vol. 13, no. 17. p. 21. ISSN 0199-6649.
  3. ^ a b R. E. Harvey (2007). "Assemblers". Archived from the original on 16 February 2008. Retrieved 4 February 2010.
  4. ^ "Archived copy". Archived from the original on 2009-01-26. Retrieved 2008-06-24.{{cite web}}: CS1 maint: 제목으로 아카이브된 복사(링크)
  5. ^ "WHDC White Papers and Documentation". Microsoft. Retrieved 25 September 2016.
  6. ^ Microsoft Macro Assembler 5.1, Mixed-Language Programming Guide. p. 3.

외부 링크