FASM

x86 프로세서용 어셈블러

FASM (flat 어셈블러)는 x86 프로세서 용 어셈블러이다. 이것은 IA-32x86-64 컴퓨터 아키텍처 용 인텔 스타일 어셈블리어를 지원한다. FASM은 빠른 속도와 크기 최적화, 운영 체제 호환성 그리고 매크로 기능을 갖는다.[1][2] 이것은 저 수준 어셈블러이며[2] 의도적으로 매우 적은 명령 줄 옵션을 갖는다. 자유-오픈 소스 소프트웨어이다.

FASM
개발자Tomasz Grysztar
발표일2000년 3월
안정화 버전
1.71.54 / 2016년 6월 9일(7년 전)(2016-06-09)
저장소
운영 체제도스 그리고 IDE, 윈도우 그리고 IDE, 유닉스 계열 (리눅스, OpenBSD 등.), 미뉴엣OS, KolibriOS, OctaOS, DexOS 그리고 IDE, SkyOS, Solar_OS
플랫폼x86, x86-64
종류어셈블러
라이선스BSD 허가서
웹사이트flatassembler.net

FASM의 모든 버전은 직접적으로 다음을 출력할 수 있다: flat "raw" 바이너리 (DOS COM executable 또는 SYS 드라이버로서 사용 가능한), 목적 파일: ELF 파일 형식 (ELF) 또는 COFF (클래식 또는 MS-전용), 또는 MZ, ELF, PE 포맷 (WDM 드라이버를 포함하며 커스텀 MZ DOS 스텁을 허용하는) 실행 파일. ARM 아키텍처(FASMARM)를 위한 비공식적인 포팅도 존재한다.[3]

설계 편집

FASM은 MASM이나 TASM 처럼 많은 고 수준 선언문을 지원하지 않는다.[2] 대신 선언문들을 커스터마이즈하고 생성할 수 있게 해주는 문법 특징과 매크로들을 제공한다. 이것의 메모리 어드레싱 문법은 TASM의 ideal 모드나 NASM과 비슷하다. 괄호는 두 어셈블러처럼 메모리 오퍼랜드를 의미하지만, 크기는 NASM처럼 괄호의 밖에 있다.

FASM은 멀티 패스 어셈블러이다. 이것은 광범위한 코드 크기 최적화를 해주며 자유로는 사전 참조를 허용한다.[4] FASM의 특이한 구조로는 코드 내에서 사용될 때에만 프로시저를 정의하는 것이 있다. 이것은 대부분의 언어에서 링커에 의해 오브젝트 단위로 수행된다.

FASM은 "같은 소스, 같은 결과" 원리에 기반한다: 결과 파일의 내용은 커맨드 라인에 의해 영향을 받지 않는다. 이러한 접근법은 FASM을 다른 많은 어셈블리 프로젝트에서 존재하는 컴파일 문제로부터 구해준다. 반면에 이것은 각각 다양하게 컴파일된 소스 파일들이나 또는 언어가 섞인 프로젝트들에서는 프로젝트를 유지보수하기 어렵게 한다. 하지만 FA라고 불리는 Win32 래퍼가 존재하고 이것은 이 문제를 완화시켜 준다.[5] FASM 프로젝트들은 링킹 단게 없이 소스 파일에서 직접적으로 실행 파일을 만들 수 있다.

Fresh IDE 편집

Fresh(John Found에 의해 시작된 인터넷 커뮤니티 지원 프로젝트)는 FASM을 위한 통합 개발 환경(IDE)이다. Fresh의 목표는 다른 시각적인 언어들처럼 프로그래밍을 빠르고 효율적으로 할 수 있게 하며 동시에 작은 애플리케이션 크기와 어셈블리어의 raw 파워를 희생시키지 않는 것이다. Fresh는 윈도우 프로그래밍에서 사용될 수 있지만 또한 FASM을 지원하는 운영 체제를 위한 프로그램도 개발할 수 있다 – 도스, 리눅스, FreeBSD, BeOS, 미뉴엣OS.

사용 편집

FASM으로 개발된 운영 체제들:

FASM을 백엔드로 사용하는 컴파일러들:

같이 보기 편집

각주 편집

  1. Tomasz Grysztar. “Flat Assembler Programmer's Manual”. 2008년 5월 12일에 확인함. 
  2. Randall Hyde. “Which Assembler is the Best?”. 2008년 5월 18일에 확인함. [깨진 링크(과거 내용 찾기)]
  3. “FASMARM”. 2008년 3월 20일. 2008년 5월 12일에 확인함. 
  4. Tomasz Grysztar. “Flat Assembler Design Principles”. 2008년 5월 12일에 확인함. 
  5. Tomasz Grysztar. “FA – command line extension for fasm”. 2012년 5월 11일에 확인함. 
  6. “DexOS FAQ”. 2016년 3월 3일에 원본 문서에서 보존된 문서. 2008년 5월 18일에 확인함. 
  7. “MenuetOS”. 2008년 5월 18일에 확인함. 

외부 링크 편집

  • FASM project: FASM   - 공식 웹사이트
  • FASMLIB 0.8.0 – portable 32-bit x86 asm lib for FASM/MASM/YASM/NASM/GASM
  • FASMARM – FASM for ARM processors, v1.27, 2012년 6월 9일 (2012-06-09)
  • The Fresh IDE