FASM
FASMFASMD – IDE가 포함된 MS-DOS 버전 | |
개발자 | 토마시 그리즈타르 |
---|---|
초기 릴리즈 | 2000년 3월; | 전
안정적 해제 | 1.73.29[1] / 2021년 12월 18일; |
리포지토리 | |
기록 위치 | 조립 |
운영 체제 | Unix 유사, Linux, Windows 및 IDE, MS-DOS 및 IDE, OpenBSD 등, 메뉴 세트OS, KolibriOS, OctaOS, DexOS 및 IDE, SkyOS, Solar_OS |
플랫폼 | x86, x86-64 |
유형 | 조립자 |
면허증 | 약한 복사기 절이 있는 단순화된 BSD |
웹 사이트. | flatassembler |
FASM(flat assemblyler)은 x86 프로세서용 조립기다.IA-32 및 x86-64 컴퓨터 아키텍처에서 인텔식 조립 언어를 지원한다.고속화, 크기 최적화, 운영체제(OS) 이식성, 매크로 능력 등을 주장한다.[2][3]낮은 수준의 조립자로[3] 의도적으로 거의 명령행 옵션을 사용하지 않는다.그것은 자유롭고 오픈 소스 소프트웨어다.
모든 버전의 FASM은 플랫 "원시" 이진(MS-DOS COM 실행 파일 또는 SYS 드라이버로도 사용 가능), 개체 중 하나를 직접 출력할 수 있다.실행 파일 및 연결 가능한 포맷(ELF) 또는 COFF(Common Object File Format)(클래식 또는 MS 고유) 또는 MZ, ELF 또는 PE(Portable Executive) 형식의 실행 파일(WDM 드라이버 포함)은 사용자 정의 MZ DOS 스텁을 허용한다.ARM 아키텍처를 대상으로 하는 비공식 포트(FASMARM)도 존재한다.[4]
역사
이 프로젝트는 1999년 토마스 그리즈타르에 의해 시작되었다.프리발로프, 당시 폴란드에서 수학 학부생이었습니다.2000년 3월에 공개되었다.[5][6]FASM은 완전히 어셈블리 언어로 작성되었으며 완전한 소스를 제공한다.자체 주최로 버전 0.90(1999년 5월 4일) 이후 자체 조립이 가능했다.
FASM은 원래 16비트 플랫 리얼 모드로 실행되었으며, 32비트 지원이 추가되었다가 옵션인 DPMI 지원으로 보완되었다.플랫 32비트 주소 지정으로 모든 운영 체제에 쉽게 포팅할 수 있도록 설계되었으며, Windows, Linux에 포팅되었다.
디자인
FASM은 MASM 또는 TASM만큼 많은 상위 문구를 지원하지 않는다.[3]구문 특성과 매크로를 제공하여 누락된 문장을 사용자 정의하거나 만들 수 있다.[5]메모리 애드레스 구문은 TASM의 이상 모드, NASM과 유사하다.브래킷은 두 조립자에서처럼 메모리 피연산자를 나타내기 위해 사용되지만, 크기는 NASM에서와 같이 브래킷 외부에 배치된다.[7]
FASM은 멀티패스 조립업체 입니다.광범위한 코드 크기 최적화를 구현하며 제한 없는 전방 참조를 허용한다.[3][7]특이한 FASM 구조는 코드의 어딘가에서 사용되는 절차만 정의하는 것인데, 대부분의 언어에서 링커에 의해 개체당 절차가 이루어진다.
FASM은 "동일한 소스, 동일한 출력" 원칙을 기반으로 한다. 즉, 결과 파일의 내용은 명령줄의 영향을 받지 않는다.[7]이러한 접근법은 많은 조립 프로젝트에서 흔히 발생하는 문제를 취합하는 것으로부터 FASM 출처를 구한다.한편, 별도로 컴파일된 복수의 소스 파일이나 혼용어 프로젝트로 구성된 프로젝트를 유지하기 어렵게 한다.그러나 FA라는 Win32 포장지가 있어 이 문제를 완화시킨다.[8]FASM 프로젝트는 연결 단계 없이 하나의 소스 파일에서 실행 가능한 파일로 직접 빌드할 수 있다.[3]
IDE
Fresh, John Found가 시작한 인터넷 커뮤니티 지원 프로젝트는 FASM을 위한 통합 개발 환경이다.[9]Fresh는 현재 마이크로소프트 윈도우와 리눅스를 지원한다.[9]
사용하다
FASM으로 작성된 운영 체제:
FASM을 백엔드로 사용하는 컴파일러:
참고 항목
참조
- ^ http://flatassembler.net/download.php; 발행일: 2021년 12월 18일; 회수: 2021년 12월 23일.
- ^ Tomasz Grysztar. "Flat Assembler Programmer's Manual". Retrieved 2008-05-12.
- ^ a b c d e Randall Hyde. "Which Assembler is the Best?". Retrieved 2008-05-18.
- ^ "FASMARM". 2008-03-20. Retrieved 2008-05-12.
- ^ a b "Interview with Privalov the author of FASM". 2004-08-12. Archived from the original on 2007-10-08. Retrieved 2008-05-12.
- ^ Tomasz Grysztar (2000-03-15). "flat assembler". Retrieved 2008-05-19.
- ^ a b c Tomasz Grysztar. "Flat Assembler Design Principles". Retrieved 2008-05-12.
- ^ Tomasz Grysztar. "FA – command line extension for fasm". Retrieved 2012-05-11.
- ^ a b "Fresh ID project".
- ^ "MenuetOS". Retrieved 2008-05-18.