Daily Archives: April 15, 2012

Low level code / Assembly

C/C++ Low Level Curriculum 这系列的 blog 简要介绍了(x86上)常用 C++ 的汇编code。 不过注意作者犯了一个比较大的错误:blog 中堆栈相关的汇编示例都是 cdecl,但作者的说明中写的都是 stdcall。应用 callee clean-up 的 stdcall 最显著的特征是用 ret xx 指令在函数返回的同时弹出堆栈,而 caller clean-up 的 cdecl 则直接用 ret 指令。我手上版本的 GCC 和 MSVC 的默认设置都是 cdecl。 实际看代码的话,就算同是 cdecl,GCC 生成的汇编和 MSVC 的也是有些差别的。比如 MSVC 进入函数后立刻 … Continue reading

Posted in Computer and Internet, Programming and Algorithm | Tagged | 1 Comment