1
我正在做炸彈實驗室,我正確猜測這是斐波那契序列(0 1 1 2 3 5)。我無法理解下面幾行:8048d11-8048d1a炸彈實驗室組裝說明
08048ce6 <phase_2>:
8048ce6: 55 push %ebp
8048ce7: 89 e5 mov %esp,%ebp
8048ce9: 56 push %esi
8048cea: 53 push %ebx
8048ceb: 83 ec 30 sub $0x30,%esp
8048cee: 8d 45 e0 lea -0x20(%ebp),%eax
8048cf1: 89 44 24 04 mov %eax,0x4(%esp)
8048cf5: 8b 45 08 mov 0x8(%ebp),%eax
8048cf8: 89 04 24 mov %eax,(%esp)
8048cfb: e8 ca 04 00 00 call 80491ca <read_six_numbers>
8048d00: 83 7d e0 00 cmpl $0x0,-0x20(%ebp)
8048d04: 75 06 jne 8048d0c <phase_2+0x26>
8048d06: 83 7d e4 01 cmpl $0x1,-0x1c(%ebp)
8048d0a: 74 05 je 8048d11 <phase_2+0x2b>
8048d0c: e8 77 04 00 00 call 8049188 <explode_bomb>
8048d11: 8d 5d e8 lea -0x18(%ebp),%ebx
8048d14: 8d 75 f8 lea -0x8(%ebp),%esi
8048d17: 8b 43 fc mov -0x4(%ebx),%eax
8048d1a: 03 43 f8 add -0x8(%ebx),%eax
8048d1d: 39 03 cmp %eax,(%ebx)
8048d1f: 74 05 je 8048d26 <phase_2+0x40>
8048d21: e8 62 04 00 00 call 8049188 <explode_bomb>
8048d26: 83 c3 04 add $0x4,%ebx
8048d29: 39 f3 cmp %esi,%ebx
8048d2b: 75 ea jne 8048d17 <phase_2+0x31>
8048d2d: 83 c4 30 add $0x30,%esp
8048d30: 5b pop %ebx
8048d31: 5e pop %esi
8048d32: 5d pop %ebp
8048d33: c3 ret
我知道,它保持了TMP變量存儲前一個元素,並添加它,並在8048d1d與下一個比較。它是如何做到的(雖然lea,mov和add)?