独習アセンブラ リスト1-2
独習アセンブラ 翔泳社のP9, リスト1-2
文字列を出力するプログラムのLinux版です。
文字列を出力するプログラムの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
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という物が出てきました。
他に、本文中に説明の無いものとして、
本文のリストでは文字列の最後に'$'が付いていますが、
これはDOSのシステムコールに依存する物なので、
取り除き、代わりに改行コードを入れました。
0x0aが改行コード(lf)です。
equの使い方は、P174に載っています。
lenには、17が入ります。
改行コードの1バイト分も含まれている事に気をつけてください。
また、本文にあるようにlenは一度だけ評価される事に注意が必要です。
これらの定数データをデータセクションに置きます。
データセクションの開始を示すのが、section .dataです。
このプログラムは、Hello, assemblerと表示し、最後に改行して終了します。
ただ、セクションとして.dataという物が出てきました。
他に、本文中に説明の無いものとして、
len equ $ - msg
という行が出てきました。本文のリストでは文字列の最後に'$'が付いていますが、
これはDOSのシステムコールに依存する物なので、
取り除き、代わりに改行コードを入れました。
0x0aが改行コード(lf)です。
equの使い方は、P174に載っています。
lenには、17が入ります。
改行コードの1バイト分も含まれている事に気をつけてください。
また、本文にあるようにlenは一度だけ評価される事に注意が必要です。
これらの定数データをデータセクションに置きます。
データセクションの開始を示すのが、section .dataです。
このプログラムは、Hello, assemblerと表示し、最後に改行して終了します。
| 固定リンク
| コメント (0)
| トラックバック (0)