01 2017 档案

摘要:全局变量和局部变量 阅读全文
posted @ 2017-01-16 22:40 _No.47 阅读(497) 评论(0) 推荐(0)
摘要:各种调用方式的考察 示例: cdecl方式是调用者清空堆栈: 如果执行的是fastcall: 借助两个寄存器传递参数: 参数1和2借助局部变量来存储: 返回值 如果返回值是结构体: 返回值存放在eax和edx两个寄存器中: 返回之后再存放eax和edx到对应的局部变量中: 如果这个结构体中存放的值太 阅读全文
posted @ 2017-01-16 15:51 _No.47 阅读(908) 评论(0) 推荐(0)
摘要:编辑来给大家盘点下.net的反编译工具: 1、Reflector Reflector是最为流行的.Net反编译工具。Reflector是由微软员工Lutz Roeder编写的免费程序。Reflector的出现使·NET程序员眼前豁然开朗,因为这个免费工具可以将·NET程序集中的中间语言反编译成C#或 阅读全文
posted @ 2017-01-15 11:09 _No.47 阅读(11080) 评论(0) 推荐(2)
摘要:在Win32中使用MFC 阅读全文
posted @ 2017-01-14 18:02 _No.47 阅读(163) 评论(0) 推荐(0)
摘要:if...else...语句 示例: if构成多分支语句 switch 有序线性的switch: 3E82D8位置存放了一个表,标明了要跳转到的地址: 这里的每四字节都标明的是每个case块的首地址: 除了表中的第四个位置,因为没有case 4 所以,第四个位置直接标明的是退出的地址: 非线性索引: 阅读全文
posted @ 2017-01-14 10:28 _No.47 阅读(579) 评论(0) 推荐(0)
摘要:恢复内容开始 加法: 示例: 常量相加,则在编译期间就计算出两个常量相加后的结果,直接将这个结果参与运算,减少了运行期的计算。当有变量参与运算时,会先取出内存中的数据,放入通用寄存器中,再通过加法指令来完成计算过程得到结果。 如果开启O2选项,则是考虑效率优先,编译出来的汇编代码会有很大的变化: 如 阅读全文
posted @ 2017-01-13 17:11 _No.47 阅读(854) 评论(0) 推荐(0)
摘要:恢复内容开始 基本的浮点数指令 示例代码: Visual Studio 2013的反汇编代码是: 对于movss,表示移动标量单精度浮点值 将标量单精度浮点值从源操作数(第二个操作数)移到目标操作数(第一个操作数)。源操作数与目标操作数可以是 XMM 寄存器或 32 位内存位置。此指令可用于将单精度 阅读全文
posted @ 2017-01-11 22:02 _No.47 阅读(2684) 评论(0) 推荐(0)