博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 嵌入汇编程序提高计算效率
阅读量:6655 次
发布时间:2019-06-25

本文共 826 字,大约阅读时间需要 2 分钟。

    因为汇编语言比C++更接近硬件底层,所以在性能要求高的程序中往往能够採取在C++代码中嵌入汇编的方式来给程序提速。

    在VC中能够简单的通过

__asm{//在这里加入汇编代码}
    来实现。

以下通过一个很easy的样例来看汇编交叉编译和直接的C++代码之间的性能差距,代码和执行结果例如以下:

#include 
#include "time.h"#define NumberOfCalculation 10000000void main(){ long gettime = clock(); unsigned int i = NumberOfCalculation; unsigned int a1 = 1, b1 = 2; unsigned int a2 = 1, b2 = 2; while (i--) { //c a1 = a1 + b1; b1 = a1 + b1; } printf("a:%d b:%d\n", a1, b1); printf("普通c++程序花费时间%dms\n", clock() - gettime); i = NumberOfCalculation; gettime = clock(); while (i--) { //汇编 __asm { mov eax, a2; mov ebx, b2; add eax, ebx mov a2, eax; add ebx, eax mov b2, ebx; } } printf("a:%d b:%d\n", a2, b2); printf("汇编交叉编译程序花费时间%dms\n", clock() - gettime); getchar();}

    假设是复杂的程序中,则性能的差异将更加明显可见。

转载于:https://www.cnblogs.com/clnchanpin/p/7083894.html

你可能感兴趣的文章
关闭linux系统中不需要的服务
查看>>
Office Tab免费版:标签化浏览和编辑Office文档
查看>>
C#基础视频
查看>>
定位网络攻击一例
查看>>
烂泥:ESXI开启SNMP服务
查看>>
6月第4周安全回顾 Firefox3存在严重漏洞 警惕Storm蠕虫
查看>>
关于CocoStudio中AtlasLabel控件后台编码的一点备注
查看>>
《统一沟通-微软-实战》-6-部署-7-部署移动功能-2
查看>>
在asp.net中备份还原SQL Server数据库
查看>>
先搞懂这八大基础概念,再谈机器学习入门!
查看>>
go语言笔记——调试还很弱,用gdb来做?可用panic和defer。格式化代码使用gofmt,貌似我的vim插件是自带...
查看>>
消息订阅
查看>>
分享我的“艺术品”:公共建筑能耗监测平台的GPRS通讯服务器的开发方法分享...
查看>>
Linux 安装.src.rpm源码包的方法
查看>>
c#将对象序列化为字符串和将字符串反序列化为对象
查看>>
“应用程序无法正常启动(oxc000007b)”解决方案
查看>>
用windows live writer写的
查看>>
NHibernate.Search 基于Lucene.NET的全文索引
查看>>
Drupal、IoT 和开源硬件之间的交集
查看>>
Android Loader详解四:回调及完整例子
查看>>