c++ - 在哪里可以找到将 VC++ 内联汇编程序转换为内在函数的脚本?

标签 c++ visual-c++ assembly intrinsics

我正在将使用 SSE 命令的内联汇编器移植到内部函数。为汇编指令找到合适的内在函数需要做很多工作。我在互联网上的某个地方看到了一个可以简化这项工作的 Python 脚本,但现在找不到了。

最佳答案

我认为您不会对这样的脚本感到满意。

首先,在我看来,内在函数仅对一两个衬垫有用,如果您有更多指令,最好有一个单独的汇编程序文件。此外,对于一长串汇编指令,您无论如何都必须控制结果,其中包括理解每条指令及其结果,这基本上意味着您可以同时再次编写它。

其次,我认为您正在寻找类似的东西,因为您想将一个软件从 32 位移植到 64 位,对吗?我的经验告诉我,如果您不仔细检查每一行代码,您会因为一些意外的类型转换而遇到一些奇怪的错误。

第三,你说的是Visual Studio吗?还有其他支持内在函数的编译器吗?在使用内在函数移植我们的软件时,我们遇到了一些奇怪的错误,因为在使用内在函数时存在一些丑陋的编译器错误,主要是通过搞乱堆栈来实现的。我们在找到这些东西时遇到了很多麻烦,最终用汇编程序编写了这些函数。

所以我的建议是要小心内在函数!

关于c++ - 在哪里可以找到将 VC++ 内联汇编程序转换为内在函数的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7283412/

相关文章:

c++ - 如何返回一个不透明的句柄(void* 或 dword),它可以转换回存储在 boost::interprocess 映射中的值元素?

c++ - 您可以将多少数据放入堆栈?

windows - 如何静态获取Windows系统调用程序集?

assembly - 使用时间和对齐 NASM 指令在复位向量指向的地址中放置一条指令

c++ - 当找不到映射键时,我可以做出以下假设吗?

c++ - 创建二维数组的数组

c++ - 为什么在 XAudio2 的 DirectX 版本中调用 OnCriticalError?

assembly - 无法通过段寄存器访问标签,汇编错误

C++:从类内访问 operator[] 的便捷方式?

c++ - 实现递归函数