电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

在C++中内嵌汇编VIP免费

在C++中内嵌汇编_第1页
1/12
在C++中内嵌汇编_第2页
2/12
在C++中内嵌汇编_第3页
3/12
在C++中内嵌汇编代码分析 用JAVA 或者Python 的人常常会告诉你,现在的硬件已经太快了,以至于你可以完全不再考虑性能,快速的开发才是最最重要的。这是个速食者的年代,什么都是,甚至是编程。 但是。。。。。。永远有但是,任何 C/C++程序员在工作一段时间后都会发现,不关心性能的C/C++程序员是干不下去的。。。。。C 语言的程序员犹甚,C++的程序员也许还可以光靠着 MFC 等类库混口饭吃。。。 C/C++程序员常常会发现自己只有有限的内存,要占用更小的CPU 资源(或者仅仅只有速度非常有限的嵌入式 CPU 可用),但是却得完成非常复杂的任务,这时候能够利用的工具却非常有限。。。唯一可能有用的就是自己的大脑。。。呵呵,改进算法永远是最重要的,但是一个非常优秀的算法也没有办法满足要求的时候,你再剩下的东西可能就是无限的优化原有的C/C++代码,接着就是汇编了。 这里从内嵌汇编将起,然后讲讲用MASM 独立编译,然后链接的方法,都以VS2005 为例子,其他编译器请参考。 内嵌汇编: 内嵌汇编的使用是很简单并且方便的,在VS 中以的形式就可以简单的使用。对于此语法我没有必要再多说了,各类资料都有介绍,可以参考参考《加密与解密》(第 3 版)附录 2.这里想举几个的函数的调用例子来说明一下,因为在函数调用时需要特别注意调用的约定,各类调用约定有不同的规矩需要留意,因为一旦使用了汇编,出现问题没有东西可以保护你,唯一可以看到的就是程序崩溃。 对于各类调用约定也可以参考《加密与解密》(第 3 版),其中的分类还比较详细。 我在《 反汇编时的函数识别及各函数调用约定的汇编代码分析》,《 C++中通过指针,引用方式做返回值的汇编代码分析》中也有一些实例的分析,但是不能代替完整的说明,仅供参考。 以下形式就是最方便的内嵌汇编用法: __asm { } 例 1: // 仅仅返回参数 int __cdeclGetArgument(intai) { int li = 0; __asm { moveax, ai; mov li, eax } return li; } 以上程序就是一个仅仅返回参数的函数,用__cdecl 调用约定,需要注意的是,mov li, ai 的形式是不允许的。。。。与在普通汇编中不允许从内存 mov 到内存的限制一致。 其实上面的例子中,程序可以优化为如下形式: 例 2: // 仅仅返回参数 int __cdeclGetArgument(intai) { __asm { moveax, ai } } 在函数中没有指定返回值时,eax 就是返回值了。。。这和普通的汇编代码...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

在C++中内嵌汇编

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部