« 独習アセンブラ リスト5-1 | トップページ | モジュールをインストールしてみる »

2007-12-04

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

独習アセンブラ 翔泳社の第5章のリスト 5-2です。

まず、初めに'A'をスタックに積み、
このスタックのアドレスをecxに移動します。
このecxを介して、
スタック上の値をインクリメントして、
出力してみます。


01: section .text
02: global  _start
03: 
04: _start:
05:         push    'A'
06:         mov     ebx, 1
07:         mov     ecx, esp
08:         mov     edx, 1
09: dispchr:
10:         mov     eax, 4
11:         int     0x80
12:         inc     byte [ecx]
13:         cmp     byte [ecx], 'Z' + 1
14:         jnz     dispchr
15: 
16:         pop     eax
17: 
18:         mov     eax, 1
19:         mov     ebx, 0
20:         int     0x80


5行目でスタックに'A'を積みます。
7行目ecxに'A'のスタック上のアドレスを移動します。
11行目で出力し、
12行目でecxの指すアドレスに格納されている値を
インクリメントします。
ecxはスタックのトップを指していて、
スタックのトップには'A'が格納されていたので、
これをインクリメントする事で、
スタックのトップの値が'B'となります。
14行目でdispchrにジャンプしなかった場合に
スタックからポップしてプログラムを終了します。




|

« 独習アセンブラ リスト5-1 | トップページ | モジュールをインストールしてみる »

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

コメント

コメントを書く



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




トラックバック


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

« 独習アセンブラ リスト5-1 | トップページ | モジュールをインストールしてみる »