오픈 와트콤 조립기
Open Watcom Assembler| 원본 작성자 | 오픈 와트콤 조립기 |
|---|---|
| 운영 체제 | x86 기반 PC용 DOS, x86 기반 PC용 Microsoft Windows, Linux, x86 기반 PC용 OS/2, FreeBx86 기반 PC용 SD. |
| 다음에서 사용 가능 | 영어 |
| 유형 | x86 조립자 |
| 웹 사이트. | www |
오픈 와트콤 조립기 또는 WASM은 와트콤 C/C++ 컴파일러와 와트콤 FORTRAN 77에서 발견된 와트콤 조립기를 기반으로 왓콤이 생산하는 x86 조립기이다.[1][2][3]32비트, 64비트 JWASM 프로젝트에 대한 추가 개발이 이루어지고 있는데,[4] 이는 마이크로소프트의 조립자 구문과 더 밀접하게 일치한다.[5]
PowerPC, Alpha AXP, MIPS를 위한 실험 조립자가 있다.[6]
기술적 세부사항
조립자
- 출력 형식 Intel OMF 출력 형식에 대한 기본 지원
- Intel x86(Pentium MMX, Pentium III-4, 3DNow!, SSE 및 SSE2) 명령 집합 지원
- 마이크로소프트 매크로 어셈블러(MASM) 5 및 6 구문(불완전)[6] 지원
디스어셈블러
Wdis와 연관된 Watcom 분해기가 있다.조립자는 목록 설비가 없다. 대신 목록을 생성하기 위해 wdis를 사용하는 것이 권장된다.[7]wdis는 OMF, COP 및 ELF 객체 파일과 PE 및 ELF 실행 파일을 읽을 수 있다.MMX, 3DNow!, SSE, SSE2, SSE3 등 16비트 및 32비트 x86 명령어 세트를 지원한다.PowerPC, Alpha AXP, MIPS, SPARC V8 명령 집합에 대한 지원도 내장되어 있다.[8]
WASM 포크
JWasm
JWasm은 Japheth에서 유래한 와셈의 포크로서 다음과 같은 특징을 가지고 있다.
- 출력 형식 Intel OMF(16/32비트), MS Coff(32비트 및 64비트), Elf(32비트 및 64비트), Bin 및 DOS MZ에 대한 기본 지원.
- 사전 컴파일된 JWasm 이진 파일은 DOS, Windows 및 Linux에서 사용할 수 있다.OS/2 및 FreeBSD의 경우 makefiles가 제공된다.
- Supports Intel x86 (8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro), x86-64 instruction sets with SIMD (MMX, 3DNow!, SSE, SSE2, SSE3 and SSSE3, SSE4.1/2 (since Jwasm), AVX (since JWasm 2.06), VMX (Intel VT-x; AMD SVM, the latter though already implemented, currently still inactive) extensions (since JWasm 2.09)).
- JWasm은 C로 쓰여 있다.이 소스는 휴대용이며 오픈 와트콤, MS VC, GCC 등을 통해 성공적으로 테스트되었다.
- Windows에서는 JWasm을 Win32와 함께 사용할 수 있다.Inc와 Masm32.v2.01 이후 스벤 B와도 함께 작동한다.슈라이버의 SBS WALK32 Win32 어셈블리 언어 키트[9]
- Japheth의 전용 h2incX로 JWasm 파일을 포함하도록 C 헤더 파일을 변환할 수 있다.
- JWasm의 소스 코드는 Sybase Open Wattcom Public License에 따라 공개되며, 이를 통해 상업 및 비상업적 무료 사용이 가능하다.
- 마이크로소프트 매크로 어셈블러 6 구문(모든 MASM 8 지침 세트)을 완벽하게 지원
Japheth는 2014년 1월 버전 2.12pre로 JWASM 개발을 중단했지만, Masm32 포럼에[10] 참가한 다른 사람들은 Japheth가 중단한 곳을 다시 찾았다.
HJWasm
HJWasm, 이 두 번째 WASM 개발을 시작한 Masm32 포럼 멤버 Habran을 참조하여 접두사 H를 추가했다.버전 2.13pre는 원래 2016년에 발표되었다.[11]새로운 기능:
- 지침:
- SIMD:
- MMX: MOVQ 및 2.13에 MOVD를 보완하기 위해 추가.
- AVX2: VGATHERDPD, VGATHERQPD, VGATHERDPS, VGATHERQPS, VPGATHERDD, VPGATHERQD, VPGATHERDQ, VPGATHERQQ, VEX-encoded general purpose instructions added in 2.13.나머지 지침은 2.16에 추가되었다.
- AVX-512: VCMPxxPD, VCMPxxPS, VCMPxxSD, VCMPxxPD, VCMPxSS, AVX-512F 세트, EBX 인코딩 지침 2.13에 추가됨; VMOVQ는 MOVD를 보완하기 위해 2.13을 추가했다.나머지 지침은 2.16에 추가되었다.
- 레지스터: RIP, ZMM 레지스터 2.13에 추가됨
- 2.25에 OO 언어 확장 추가.
HASM
HASM은 버전 2.33에서 시작하는 HJWASM의 이름 변경 버전이다.원래 대체 이름을 제안했던 MASM 포럼 토론 스레드에 이어 이름이 사용됐다.HASM이라는 이름은 포럼 멤버 habbran이 Reply #6에서 제안했으며,[12] Response #33에서 토론 스레드가 끝날 때 최종 확정되었다.[13]HASM의 릴리스 사이클에는 알려진 기능이 추가되지 않는다.
UASM
이 이름은 테라스페이스(Teraspace Ltd)의 제품 페이지에서 버전 2.33(2017-05-20일자)에서 실제로 사용되었으나 버전 2.34에서만 발표되었다.[14][15]HJWASM에 대한 변경사항은 다음과 같다.[16]
- 명령 집합: RDPID가 2.38에 추가됨
- AVX-512: 2.38에 VAESDEC 추가
- 데이터 전송: MOVBE가 2.47에 추가됨. MOVABS가 2.48에 추가됨.
- Intel ADX: ADCX, ADOX 2.38에 추가됨
- Intel MPX: 2.34에 추가된 BND 접두사 지원.2.40에서 JCXZ 명령 그룹에서 BND 접두사를 제거했다.
- CLMUL 명령 집합:2.46.8에 CLMUL의 의사-op 형식을 포함하여 추가되었다.
- 해싱: 2.46.8에 SHA 명령 집합 추가.
- 감독자 모드 액세스 방지: CLAC가 2.38에 추가됨
- 영구 메모리 확장: 2.38에 CLFLUSHOPT가 추가됨
- 주소 지정 모드: 64비트 절대 즉시(2.37)
- 식별된 유형
- 레코드 종류: 2.41의 레지스터 및 최대 32비트 레코드 필드 완전 지원.
- 128비트 지원:2.42에 추가됨, 2.43.1 / .2에 유형이 추가된 인라인 선언.
- 2.46.8에 추가된 반환 형식에 대한 형식 지정 체인 지원.
- m³ 2.47에 추가된 내장 유형.
- 콘솔 색상 코딩:2.43.1 / .2에서 Windows, OSX 및 Linux용으로 추가됨
- 함수 호출: 2.46에 C-스타일 함수 호출이 추가됨
참조
- ^ Randall Hyde. "WASM: The Open Watcom Assembler". Archived from the original on 2012-03-02. Retrieved 2017-09-11.
{{cite web}}: CS1 maint : bot : 원본 URL 상태 미상(링크) - ^ Leiterman, James (2005). "MASM vs. NASM vs. TASM vs. WASM". 32/64-bit 80x86 assembly language architecture. Wordware Publishing, Inc. p. 481. ISBN 978-1-59822-002-5. Retrieved 2010-02-01.
- ^ Literman p482 on Google Books
- ^ JWASM, MASM과 유사한 구문을 가진 WASM을 기반으로 한 32/64비트 조립기.2014년 10월 10일 보관
- ^ Fog, Agner (2009), Optimizing subroutines in assembly language (PDF) (2009-09-26 ed.), p. 13
- ^ a b Watcom 웹 사이트 열기: 웨이백 머신에 2006-07-15를 보관한 조립자
- ^ OpenWatcom : "[조립자가] 목록 파일을 생성하지 않는다.wdis(Open Watcom discom discler)가 매우 잘하기 때문에 전체 목록을 만드는 것은 노력의 낭비일 수 있다.그러나 특히 진단 목적으로 MASM이 하는 방식대로 내부 기호표 덤프를 제작하는 것이 큰 도움이 될 수 있다고 말했다.
- ^ Watcom 웹 사이트 열기: 웨이백 머신에 보관된 2006-07-15 분해기
- ^ 1996년 "WALK32"는 다음과 같은 주요 구성요소로 구성된다.
- W32Link라는 완전한 기능을 갖춘 PE(Portable Executive) 파일 링크.
- 주에는 Win32 상수, 유형 및 구조 정의를 포함하는 파일이 포함된다.
- 응용 프로그램 및 DLL 시작 소스 코드가 들어 있는 파일도 포함된다.
- 세그먼트 및 PE 섹션 관리 매크로.
- 유니코드 지원과 관련된 매크로.
- 여러 데모 응용 프로그램 및 DLL
- 다양한 목적을 위한 프로그래밍 유틸리티 모음." walk32_1.zip의 walk32.doc
- ^ UASM 조립기 개발
- ^ HJWasm 릴리스
- ^ 새 이름?(1페이지 참조)
- ^ 새 이름?(3페이지 참조)
- ^ UASM(2.33)
- ^ UASM 2.33 릴리스
- ^ UASM ChangeLog
외부 링크
- wasm 조립자 wiki
- JWasm
- Terraspace Ltd 페이지:HJWASM, 하셈, UASM
