$ gdb test
(gdb) disas func
Dump of assembler code for function func:
0x080483e4 <+0>: push %ebp 確保
0x080483e5 <+1>: mov %esp,%ebp コピー
0x080483e7 <+3>: sub $0x10,%esp 引く
0x080483ea <+6>: movl $0x1,-0x4(%ebp) ?? ①
0x080483f1 <+13>: movl $0x0,-0x8(%ebp) ??②
0x080483f8 <+20>: jmp 0x8048404 <func+32> ジャンプ
0x080483fa <+22>: mov -0x4(%ebp),%eax
0x080483fd <+25>: add %eax,-0x8(%ebp)
0x08048400 <+28>: addl $0x1,-0x4(%ebp)
0x08048404 <+32>: mov -0x4(%ebp),%eax
0x08048407 <+35>: cmp 0x8(%ebp),%eax ひかく
0x0804840a <+38>: jle 0x80483fa <func+22> 条件満たせばじゃんぷ
0x0804840c <+40>: mov -0x8(%ebp),%eax
0x0804840f <+43>: leave
0x08048410 <+44>: ret
End of assembler dump.
(gdb)
わかるとこかいてみました。
図を書いてみました。
http://gyazo.com/9de499e34ff42b41b699ab60b1fb75db
まず?①②がよくわからなくて mov命令で32bitまではわかるんですが。
推測としては0x1を0x4にコピーかなーとはおもうんですが、
movl $0x1,-0x4(%ebp)
$がついてたり、-がついてたり(%ebp)がついててよくわかりません。
お願いします