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

2007-11-06

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

リストの1-3は、1-2と同じような物なので、
ここでは省略します。

次は、リスト1-4です。
add命令が出てきます。
加算です。

サンプルリストでは、1 + 5を行っています。
01:  section .text
02:  global  _start
03:
04:  _start:
05:          mov     edx, 1
06:          add     edx, 5
07:          add     edx, 0x30
08:          push    edx
09:          mov     eax, 4
10:          mov     ebx, 1
11:          mov     ecx, esp
12:          mov     edx, 1
13:          int     0x80
14:          pop     edx
15:
16:          mov     eax, 1
17:          mov     ebx, 0
18:          int     0x80
まず始めに、edxを1にして
6行目、7行目で足し算をしています。
6行目の足し算は単純に5を足します。
これで、1+5の結果がedxの値となります。
7行目の足し算は文字コードの'0'を足しています。
文字コードは、'0', '1', '2', '3', '4'と並んでいます。
つまり、'0'が0x30で0x31は'1'です。
0x36は'6'になります。
数値としての6ではなく、
文字としての'6'です。
この'6'という文字を、リスト1-1と同じように
画面に出力します。

以前やったように
スタックのポインタが指すアドレスを
下のように直接操作しても問題ありません。(多分)
add     esp, 4






|

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

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

コメント

コメントを書く



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




トラックバック


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

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