よく使われる代表的なもの
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