随笔分类 -  汇编

_cdecl与_stdcall区别
摘要:_cdecl与_stdcall是最常用的的两种函数调用修饰,区别在于函数返回时,清理栈(恢复栈平衡)是caller做还是被调函数做。 1 4: _cdecl int add1(int a, int b) 2 5: { 3 00401020 push ebp 4 0040... 阅读全文
posted @ 2014-06-06 08:42 木椅 阅读(245) 评论(0) 推荐(0)
在C语言中破坏函数调用堆栈
摘要:1 // 这段代码显示,在C语言修改函数的返回地址 2 int test1() 3 { 4 return 0; 5 } 6 7 int test2(int a) 8 { 9 *(&a-1) = (int)test1; // 将返回地址修改为test1 10 retu... 阅读全文
posted @ 2014-05-27 13:44 木椅 阅读(628) 评论(0) 推荐(0)
rep stos ptr dword es:[edi]
摘要:今天读代码时,忽然跳出如下一条指令==>>汇编代码: rep stos dword ptr es:[edi]在网上查了相关资料显示:/************************************************************/lea edi,[ebp-0C0h]mov ... 阅读全文
posted @ 2014-05-27 12:49 木椅 阅读(1851) 评论(0) 推荐(0)
C到汇编[1]
摘要:这篇文字解释这个问题:C语言函数调用在汇编语言是怎么实现的?栈模型很好的满足了函数调用的需求,以最简单的函数调用说明。 1 5: int add2(int a, int b){return a+b;} 2 0040B450 push ebp 3 0040B451 mov ... 阅读全文
posted @ 2014-05-27 09:46 木椅 阅读(280) 评论(0) 推荐(0)