材料1
材料2
PS:通过g++(GNU编译器,可以用于C++的编译以及汇编代码的生成)生成相应C代码的汇编代码。
汇编代码对照
格式:
1
2
3
4
====================
c++原语句
原语句对应的汇编代码
====================
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
43
44
45
46
==========================
int i=2;
movl $2, -4(%rbp)
===========================
i++和++i
movl -4(%rbp), %ecx
addl $1, %ecx
movl %ecx, -4(%rbp)
===========================
i=5+(++i);
movl -4(%rbp), %ecx
addl $1, %ecx
movl %ecx, -4(%rbp)
addl $5, %ecx
movl %ecx, -4(%rbp)
===========================
i=5+(i++);
movl -4(%rbp), %ecx
movl %ecx, %edx
addl $1, %edx
movl %edx, -4(%rbp)
addl $5, %ecx
movl %ecx, -4(%rbp)
===========================
i=+(i++)+(++i)-i;
movl -4(%rbp), %ecx
movl %ecx, %edx
addl $1, %edx
movl %edx, -4(%rbp)
movl -4(%rbp), %edx
addl $1, %edx
movl %edx, -4(%rbp)
addl %edx, %ecx
subl -4(%rbp), %ecx
movl %ecx, -4(%rbp)
===========================