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

2007-11-15

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

独習アセンブラ 翔泳社の第四章のリスト 4-3です。
XCHG命令で、ソースとディスティネーションの内容を交換します。


01: section .data
02:
03: msg     db 'Hello, assembler', 0x0a
04: len     equ $ - msg
05:
06: section .text
07: global  _start
08:
09: _start:
10:         mov     dl,  [msg]
11:         xchg    dl,  [msg + 1]
12:         mov     [msg], dl
13:
14:         mov     eax, 4
15:         mov     ebx, 1
16:         mov     ecx, msg
17:         mov     edx, len
18:         int     0x80
19:
20:         mov     eax, 1
21:         mov     ebx, 0
22:         int     0x80


10行目でdlの内容が'H'となります。
続いて11行目でdlの内容が'e'(msg + 1)
msg + 1の内容が'H'になります。
この時点でメモリ上のmsgは、
HHllo, assembler\n
となっている筈です。

12行目で、'H'([msg])にdlの内容'e'を移動するので、
メモリ上のmsgは、
eHllo, assembler\n
となりました。

あとは、出力するだけです。




|

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

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

コメント

コメントを書く



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




トラックバック


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

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