Professional Documents
Culture Documents
Exam 2013 3
Exam 2013 3
Trng b mn
Cn b ra thi
a ch cao
EBPSau lnh 28
ESP
EBP
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
oddeven:
pushl
%ebp
movl %esp, %ebp
subl $4, %esp
cmpl $0, 8(%ebp)
jne .L2
movl $0, %eax
jmp .L3
.L2:
cmpl $1, 8(%ebp)
jne .L4
movl $1, %eax
jmp .L3
.L4:
movl 8(%ebp), %eax
subl $2, %eax
movl %eax, (%esp)
call oddeven
.L3:
leave
ret
.section
.rodata
.LC0: .string
"5 is an even number"
.LC1: .string
"5 is an odd number"
.text
main:
pushl
%ebp
movl %esp, %ebp
subl $4, %esp
movl $5, (%esp)
call oddeven
testl
%eax, %eax
jne .L7
movl $.LC0, %eax
movl %eax, (%esp)
call printf
jmp .L8
.L7:
movl $.LC1, %eax
movl %eax, (%esp)
call printf
.L8:
movl $0, %eax
leave
ret
0x0
Text
segment
(1)
(2)
Data
segment
(3)
(4)
BSS
(5)
data
0xA9B
0x369
BSS
0x105
0x189
+---------------+
a+------o B
b| r
s| e
A o---+
o<--+ 0200
|
+---------------+ 0000
|
0c00
o| l+---o C
0e82
l| a| |
1000
u| t| +---------------+
+---------------+
t| i| |
e|ve+-->o C+900
1500
1600
D o------------------>o func()
|
+----->o
+---------------+
Sau lin kt:
1000
----------------+
+------o B
A o----+ XXXX
o<---+
| r
XXXX
a| e+---o C
D o----+
XXXX
b| l| |- - - - - - - -| |
s| a| |
o| t| |
XXXX
| |
func o<---+ XXXX
l| i| +---------------+
u| v| |
XXXX
t| e+-->o C+XXXX
XXXX
e+----->o
| 0700
| 0dd7
+---------------+
+---------------+