素人プログラマがアセンブラでHello worldに挑戦してみた。
(環境はUbuntu9.10 32bitです。)
アセンブラ処理系NASMをインストールする
sourceforgeのサイトから、処理系(コンパイラ?)のソースコードをダウンロードできます。$ wget "http://sourceforge.net/projects/nasm/files/nasm%20sources/2.07/nasm-2.07.tar.gz/download"
$ tar xvfz nasm-2.07.tar.gz
$ cd nasm-2.07
$ ./configure
$ make
$ su
# make install
サンプルコードHello World
下記コードを ファイル名hello.asm で保存します。section .text
global _start ;リンカのための宣言
_start: ;リンカに開始ポイントを伝える
mov edx,len ;メッセージの長さ
mov ecx,msg ;メッセージ
mov ebx,1 ;標準出力を指定
mov eax,4 ;システムコール番号 (sys_write)
int 0x80 ;システムコール
mov eax,1 ;システムコール番号 (sys_exit)
int 0x80 ;システムコール
section .data
msg db 'Hello, world!',0xa ;メッセージ文字列
len equ $ - msg ;文字列の長さ
実行する。
$ nasm -f elf hello.asm && ld -s -o hello hello.o && ./hello
hello, world
できた!!感動した!!
参考:Linux でアセンブリプログラミング
カテゴリ: