Chinaunix首页 | 论坛 | 博客
  • 博客访问: 359445
  • 博文数量: 60
  • 博客积分: 15
  • 博客等级: 民兵
  • 技术积分: 1138
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-20 16:18
个人简介

最多140个字

文章分类

全部博文(60)

文章存档

2016年(1)

2015年(34)

2014年(25)

分类: C/C++

2014-03-02 15:49:09

//参考《C++反汇编与逆向分析技术揭秘》
//在反汇编下,没有引用这种数据类型。
//在C++中,引用和指针没有分别,只是引用是通过编译器实现寻址的,而指针需要手动寻址。
//C++为了简化指针操作,对指针的操作进行了封装,产生了引用类型。引用类型在C++中被描述为变量的别名。实际上,引用类型就是指针类型,只不过它用于存放地址的内存空间对使用者而言是隐藏的。
----- -----------------------------------------------------------------     

  1. #include<iostream>
  2. using namespace std;

  3. struct Test
  4. {
  5.     Test():a(1),b(2)
  6.     {
  7.     }
  8.     int a;
  9.     int b;
  10. };
  11. int main()
  12. {
  13.     Test t;
  14.     Test &x=t;
  15.     return 0;
  16. }
----------------------------------------------------------------------     
C++对应的汇编代码:
  1. Test t;
  2. 00401038 lea ecx,[ebp-8]
  3. 0040103B call @ILT+10(Test::Test) (0040100f)
  4. 15: Test &x=t;
  5. 00401040 lea eax,[ebp-8]
  6. 00401043 mov dword ptr [ebp-0Ch],eax
  7. 16: return 0;
  8. 00401046 xor eax,eax


阅读(2002) | 评论(0) | 转发(0) |
0

上一篇:第九章

下一篇:第三章

给主人留下些什么吧!~~