アセンブラツール

よく使われる代表的なもの

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