« 独習アセンブラ リスト1-1 | トップページ | 独習アセンブラ リスト1-4 »

2007-10-26

独習アセンブラ リスト1-2

独習アセンブラ 翔泳社のP9, リスト1-2
文字列を出力するプログラムのLinux版です。

List 1-2
section .data

msg     db 'Hello, assembler', 0x0a
len     equ $ - msg

section .text
global  _start

_start:
        mov     eax,4
        mov     ebx,1
        mov     ecx,msg
        mov     edx,len
        int     0x80

        mov     eax,1
        mov     ebx,0
        int     0x80


基本的なコードの部分は、リスト 1-1と同じです。
ただ、セクションとして.dataという物が出てきました。
他に、本文中に説明の無いものとして、
len equ $ - msg
という行が出てきました。
本文のリストでは文字列の最後に'$'が付いていますが、
これはDOSのシステムコールに依存する物なので、
取り除き、代わりに改行コードを入れました。
0x0aが改行コード(lf)です。
equの使い方は、P174に載っています。
lenには、17が入ります。
改行コードの1バイト分も含まれている事に気をつけてください。
また、本文にあるようにlenは一度だけ評価される事に注意が必要です。

これらの定数データをデータセクションに置きます。
データセクションの開始を示すのが、section .dataです。

このプログラムは、Hello, assemblerと表示し、最後に改行して終了します。






|

« 独習アセンブラ リスト1-1 | トップページ | 独習アセンブラ リスト1-4 »

アセンブラ(nasm)」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 独習アセンブラ リスト1-2:

« 独習アセンブラ リスト1-1 | トップページ | 独習アセンブラ リスト1-4 »