よく使われる代表的なもの
1.MASA
Microsoft Macro Assemblerの略ともいわれ、当初は、Macro Assembler。MicrosoftのOS(DOSやWindows)上で実行するプログラムのために開発されたアセンブラです。
; hello.asm
include ¥masm32¥include¥masm32rt.inc
.code
start:
print "Hello, Assembly Language!",13,10
exit
end start
2.NASM
NASM(Netwide Assembler)はGNUのLGPLで公開されているフリーソフトウェアのアセンブラです。このアセンブラはIntel x86ファミリーをターゲットとしており、様々な形式で出力することができます。
; ha.asm
bits 16
org 0x100
mov ah, 2 ;文字出力を指定
mov dl,[msg] ;msgの先頭'H'
int 21h
mov dl,[msg+7] ; msgの8番目'a'
int 21h
mov ax,4C00h ;プログラム終了
int 21h
msg db "Hello, assembler$"
3.GNU Assembler(GAS)
UNIX系の各種アーキテクチャ(x86, 680×0, SPARC, VAX)向けのアセンブラファミリーです。AT&T表記と呼ばれる構文を使っています。もともと、gcc(GNU C, C++コンパイラ)との親和性が高く、UNIX系OSでC/C++とリンクするアセンブリ言語プログラムを記述するためによく使われます。
# hello.S
.text
.global _start
_start:
movl $len,%edx
movl $msg,%ecx
movl $1,%ebx
movl $4,%eax
int $0x80
# exit
movl $0, %ebx
movl $1, %eax
int $0x80
.data
msg:
.ascii "Hello, world!¥n"
len = . - msg