Windows下使用内联汇编方法很简单。使用 __asm 关键词结构作为制导就可以。

__asm{

// Assembly Codes here

}

但是,Visual Studio目前只支持32位(x86)的内联汇编,而不支持64位(x64)下的内联汇编。所以如果使用VS2015,且在x64下编译的话,会报错 “使用了非标准扩展: 不支持在此结构上使用“__asm”关键字”

经过本人测试,最好的解决方法就是64位时切换到intel的编译器进行研发。自动安装配置好intel parallel studio XE 后,还可以根据需要自由切换选择使用哪款编译器来Compile你的Code,挺好~

intel的很多开发套件都是只能免费试用一个月,为了省钱的(也就是比较穷)我们只能搜索对应的license文件以期进行长期的免费使用了。

搜索Intel Parallel Studio XE 2016 Cluster Version,最高支持到VS2015,全部安装好后,对应的操作也很方便(资源共享,内含安装文件和license:链接:https://pan.baidu.com/s/14vDCooJYbROXcxTvZUi2Cw  
提取码:uf17 )。

需要用intel C++ Compiler的时候,右键工程->属性->(属性页->配置属性)->常规->平台工具集,修改平台工具集为intel C++ Compiler 即可。如下图:

或者更省事儿点,同样右键工程,右键菜单找到Intel Compiler,就可以来回自由切换Intel Compiler和Visual C++ Compiler了。如下两图:

剩下的大家伙就可以开始折腾了。

附注(引用),部分参考了链接:https://blog.csdn.net/jinzhuojun/article/details/7085138 , 特此鸣谢。

Linux下,GCC支持x86-32/64的内联汇编。Windows下,Visual Stdio支持x86-32的内联汇编,但不支持x64的内联汇编(至少到Visual Studio 2010是这样),而是提供了一些Intrinsics(一种类似于内联函数的东西)。MSDN给出了这些intrinsics的列表:http://msdn.microsoft.com/en-us/library/26td21ds.aspx。

这些intrinsics可以让我们使用cpuid和rdstc这类底层特性,但终归有限的intrinsics是无法满足人民日益增长的开发需要的,于是我们需要能更方便写汇编代码的方法。这里讨论三种方法:

* 第一种是比较生猛的做法,直接把全部程序写成.S汇编文件,适合各类牛人及猛男,不多讨论。(Visual Studio相关配置例子见http://www.deconflations.com/2011/masm-assembly-in-visual-studio-2010/)

* 第二种比较柔和些,把需要写成汇编的函数写到.S汇编文件里,最后链接进来。(http://www.lomont.org/Math/Papers/2009/Introduction%20to%20x64%20Assembly.pdf里有一个简单例子)

* 重点讨论第三种,首先安装Intel C++ Compiler XE,然后打开Parallel Studio XE 2011 with VS2010。

Visual studio 默认不支持x64下__asm{}内联汇编的解决方案(含资源共享)相关推荐

  1. VS2015默认不支持x64下__asm{}内联汇编的解决方案(含资源共享)

    截至目前(2018年底2019年初),本人windows平台下的各种开发所用的IDE主要就是VS2015.虽然VS2017已经出来一年多了,本人也自己使用过一段时间,但没发现特别大的亮点,又考虑到整个 ...

  2. mupdf不支持x64_x86平台转x64平台关于内联汇编不再支持的解决

    工具:VS2005  编译器:cl.exe(X86 C/C++)  ml64.exe(X64 ASM64) 前提:X86下内联汇编是嵌在函数当中实现的 在X86平台下,可以轻松的在C/C++代码中嵌入 ...

  3. Visual Studio将原生支持WSL 2

    喜欢就关注我们吧! 近日,微软官方宣布旗下的集成开发环境 Visual Studio 将原生支持 WSL 2,这意味着 VS 用户可以在 WSL 2 上进行无缝构建和调试,而无需添加 SSH 连接,提 ...

  4. Visual Studio 默认编码为 utf-8

    Visual Studio 默认编码为utf-8 单个编码 – 高级选项卡 Visual Studio 设置默认编码格式在"高级保存选项"窗口中,可通过"文件" ...

  5. Microsoft Visual Studio 2019 美化之——透明化窗口 Microsoft Visual Studio 2019 C/C++ Windows 下重量级编辑器 Editor

    Microsoft Visual Studio 2019 美化之--透明化窗口 Microsoft Visual Studio 2019 C/C++ Windows 下重量级编辑器 ?Editor? ...

  6. TFS(Visual Studio Team Services) / Azure Devops git认证失败 authentication fails 的解决方案 http协议

    TFS(Visual Studio Team Services) / Azure Devops git认证失败 authentication fails 的解决方案 http协议 参考文章: (1)T ...

  7. 在Visual C++ 中使用内联汇编

    一. 优点 使用内联汇编可以在 C/C++ 代码中嵌入汇编语言指令,而且不需要额外的汇编和连接步骤.在 Visual C++ 中,内联汇编是内置的编译器,因此不需要配置诸如 MASM 一类的独立汇编工 ...

  8. VS 编写 x64 内联汇编

    From:https://www.cnblogs.com/talenth/p/9135626.html VS 中使用 X64 汇编:https://blog.csdn.net/kingswb/arti ...

  9. 用VC写Assembly代码(7)--在Visual C++中使用内联汇编

    在Visual C++中使用内联汇编 一. 优点 使用内联汇编可以在 C/C++ 代码中嵌入汇编语言指令,而且不需要额外的汇编和连接步骤.在 Visual C++ 中,内联汇编是内置的编译器,因此不需 ...

最新文章

  1. JMM(Java内存模型)
  2. nginx服务器绑定域名和设置根目录的方法
  3. java swing 弹出登录框_用JavaSwing制作一个简单的登录框
  4. PHP新手上路(十)
  5. java 导出excel教程_Java导出Excel表格
  6. python-9:nonlocal,指定上一级变量
  7. Eclipse下载及安装hibernate插件
  8. winfrom下,如何实现类似QQ右下角弹出新闻
  9. 本人为巨杉数据库(开源NoSQL)写的C#驱动,支持Linq,全部开源,已提交github
  10. 【震撼】《京东技术解密》获众大神集体推荐,4千人10年经验一次放送
  11. nginx反向代理后获取不到客户端的ip地址问题
  12. DIgSILENT出图到Matlab画图到Visio画图全过程
  13. Android字体设置,Roboto字体使用
  14. D/E盘根目录出现Msdia80.dll操作;dllregisterserver调用失败错误代码0x80004005 解决
  15. cefsharp修改html元素,CefSharp网页元素点击
  16. mysql 父子关系查询,父子关系-SQL查询
  17. mysql怎么加载txt文本1148_MySQLload从文件读入数据提示ERROR1148
  18. 记录:Flink checkpoint 过期导致失败(线上问题)
  19. 部署ChatGPT(在VPS或免费容器上),无需科学上网!
  20. PPT在线转换成视频的步骤

热门文章

  1. 低调推广重疾险 滴滴公司的金融帝国美梦能否真正实现?
  2. 模拟Vista侧边栏的CPU仪表盘(VC6)
  3. 普通用户可以申请华为鸿蒙系统吗,鸿蒙OS系统普通用户有申请成功的吗?
  4. PR CC 2018添加素材时出现绿色/紫色横线
  5. python全栈需要学习什么_python全栈是什么意思
  6. 2009-12-20 EXCEL比对数据
  7. 软件测试职业发展规划
  8. c#chart 的x轴设置时间格式,第一个坐标从0开始
  9. 影响人生的五大定律,值得一读
  10. 使用Matlab对频繁2项集和频繁3项集的求取