独習アセンブラ リスト5-2
独習アセンブラ 翔泳社の第5章のリスト 5-2です。
まず、初めに'A'をスタックに積み、
このスタックのアドレスをecxに移動します。
このecxを介して、
スタック上の値をインクリメントして、
出力してみます。
まず、初めに'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
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にジャンプしなかった場合に
スタックからポップしてプログラムを終了します。
7行目ecxに'A'のスタック上のアドレスを移動します。
11行目で出力し、
12行目でecxの指すアドレスに格納されている値を
インクリメントします。
ecxはスタックのトップを指していて、
スタックのトップには'A'が格納されていたので、
これをインクリメントする事で、
スタックのトップの値が'B'となります。
14行目でdispchrにジャンプしなかった場合に
スタックからポップしてプログラムを終了します。
| 固定リンク
「アセンブラ(nasm)」カテゴリの記事
- 独習アセンブラ リスト5-2(2007.12.04)
- 独習アセンブラ リスト5-1(2007.12.04)
- 独習アセンブラ リスト4-4(2007.11.15)
- 独習アセンブラ リスト4-3(2007.11.15)
- 独習アセンブラ リスト4-2(2007.11.12)
この記事へのコメントは終了しました。
コメント