어셈블리 언어 컴파일러용 MASM 컴파일러 소개
MASM은 Microsoft에서 출시한 어셈블리 컴파일러입니다. 해당 버전은 낮은 버전에서 높은 버전으로 여러 번 업그레이드되었습니다(Microsoft의 일반적인 문제이므로 업그레이드 패치가 너무 많습니다). 일상적인 오류 수정 외에도 각 업그레이드에는 몇 가지 새로운 기능이 추가되었으므로 결국 상위 버전과 하위 버전의 구문 및 기능이 매우 다르며 이전 버전과의 호환성도 좋지 않았습니다. 낮은 버전의 MASM은 상위 버전의 소스 프로그램을 컴파일할 수 없지만 상위 버전의 MASM은 하위 버전의 소스 프로그램을 정상적으로 컴파일하지 못할 수도 있습니다. 예를 들어 MASM 4.0으로 작성된 소스 프로그램은 종종 성공적으로 컴파일되지 않습니다. MASM 6.x에서. MASM 시리즈 컴파일러를 사용할 때 어떤 버전별 구문과 컴파일 옵션을 사용할 수 있는지 먼저 이해하지 못하면 컴파일에 오류가 많이 발생합니다. 따라서 여기에서는 MASM 각 버전의 발전 과정을 이해하는 것이 필요합니다.
다음 표에는 MASM 컴파일러의 여러 버전 간의 차이점이 나열되어 있습니다.
버전
소개
MASM 4.00
이것은 DOS에서 어셈블리 프로그래밍에 적합한 최초의 널리 사용되는 MASM 버전입니다. 매우 정교하지만 사용하기에는 그다지 지능적이지 않아 사용자가 모든 것을 정확한 방식으로 작성해야 합니다. 많은 교과서에서 가르치는 8086 어셈블리 구문은 프로그래머를 위한 이 버전을 목표로 합니다. 디버그를 사용하는 것보다 약간 더 편리할 뿐입니다.
MASM 5.00
MASM 5.00은 4.00보다 훨씬 빠르며 세그먼트 정의의 의사 명령어를 .code 및 .data와 유사한 정의 방법으로 단순화합니다. 80386 프로세서 명령어의 경우 버전 4.00과의 호환성이 매우 좋습니다.
MASM 5.10
프로그래머 입장에서 이번 버전의 가장 큰 개선점은 @@ Label 지원이 추가된 것입니다. 이러한 방식으로 프로그래머는 더 이상 레이블 이름을 지정하는 데 많은 시간을 소비하지 않습니다. 또한 MASM 5.10은 OS/2 1.x에 대한 지원을 추가합니다.
MASM 5.10B
1989년에 출시되었으며 이전 버전보다 더 안정적이고 빠릅니다. DOS 어셈블리 컴파일러의 가장 완전한 버전
MASM 6.00
은 1992년에 출시되었으며 많은 개선이 이루어졌습니다. 컴파일러는 더 큰 파일을 컴파일할 수 있는 확장 메모리를 사용할 수 있으며 이에 따라 실행 파일 이름이 Masm.exe에서 Ml.exe로 변경됩니다. 이 버전부터 명령줄에서 *.asm을 사용하여 여러 소스 파일을 동시에 컴파일할 수 있습니다. 소스 프로그램의 데이터 구조 사용 및 명령줄 매개변수 구문은 C 스타일과 비슷합니다. 가장 큰 개선 사항 중 하나는 .if/.endif와 같은 고급 구문을 지원하기 시작한 것입니다. 이러한 방식으로 복잡한 조건 분기를 사용하는 것은 고급 언어로 작성하는 것만큼 쉽고, 정의하지 않고도 수천 줄의 코드를 달성할 수 있습니다. 라벨이 추가되었습니다. 매개변수를 사용하여 서브루틴 호출을 단순화하기 위해 호출 지시문이 추가되었습니다.
이 두 가지 개선 사항으로 인해 어셈블리 코드 스타일이 점점 C에 가까워지고 가독성과 유지 관리성이 크게 향상되었습니다.
MASM6.00A
미공개 버전
MASM 6.00B
OS/2를 지원하는 마지막 MASM 버전, 이전 버전의 일부 버그 수정
MASM 6.10
일부 오류 수정 및 /Sc 생성된 목록 파일의 각 명령어에 사용되는 클럭 사이클 수를 나열할 수 있는 옵션이 추가되었습니다.
MASM6.10A
1992년 출시, 일부 메모리 관리 문제 수정
MASM 6.11
1993년 11월에 출시되었으며 Windows NT를 지원하고 Win32 프로그램을 작성할 수 있으며 Pentium 명령어를 지원하지만 MMX 명령어 세트는 지원하지 않습니다.
p>MASM6.11C
1994년 출시, Windows 95 VxD에 대한 지원 추가
MASM 6.12
1997년 8월 출시, .686, .686P, .MMX 추가 해당 명령어에 대한 선언 및 지원
MASM 6.13
1997년 12월 출시, .K3D 선언이 추가되고 AMD 프로세서에 대한 3D 지원이 시작됨 명령어
MASM 6.14
이 버전은 .XMM에 Pentium III의 SIMD 명령어 세트에 대한 지원을 추가하고 이에 따라 OWORD(16바이트)를 추가합니다.
MASM 6.15