1
2
3
4
5
6
7
8
9
10 == 0x08048054
11
12
13
14
15
16
17 55/push . . . . . . . .
18 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
19
20 68/push . . . . . . . 5/imm32
21 e8/call . . . . . . factorial/disp32
22
23 5a/pop . . . . . . . .
24
25 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . .
26 5d/pop . . . . . . . .
27
28
29 89/copy 3/mod/direct 3/rm32/EBX . . . 0/r32/EAX . .
30 b8/copy . . . . . . . 1/imm32
31 cd/syscall . . . . . . . 0x80/imm8
32
33
34 factorial:
35
36 8b/copy 1/mod/*+disp8 4/rm32/sib 4/base/ESP 4/index/none 2/r32/EDX 4/disp8 .
37
38 b8/copy . . . . . . . 1/imm32
39
40 81 7/subop/compare 3/mod/direct 2/rm32/EDX . . . . . 1/imm32
41 7e/jump-if-<= . . . . . . $factorial:exit/disp8
42
43 89/copy 3/mod/direct 3/rm32/EBX . . . 2/r32/EDX . .
44 81 5/subop/subtract 3/mod/direct 3/rm32/EBX . . . . . 1/imm32
45
46 55/push . . . . . . . .
47 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
48
49 53/push . . . . . . . .
50 e8/call . . . . . . factorial/disp32
51
52 5e/pop . . . . . . . .
53
54 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . .
55 5d/pop . . . . . . . .
56
57 8b/copy 1/mod/*+disp8 4/rm32/sib 4/base/ESP 4/index/none 2/r32/EDX 4/disp8 .
58
59 0f af/multiply 3/mod/direct 2/rm32/EDX . . . 0/r32/EAX . .
60
61 $factorial:exit:
62 c3/return
63
64