gpt4 book ai didi

visual-c++ - 将 GNU asm 调用转换为 VC++

转载 作者:行者123 更新时间:2023-12-03 00:28:58 25 4
gpt4 key购买 nike

我一直在将Linux应用程序移植到Windows平台。

这是Linux代码,

 __asm__ __volatile__ ("lock; cmpxchgl %1, %2"
: "=a" (prev)
: "q" (new_value), "m" (*ptr), "0" (old_value)
: "memory");

我尝试使用 _asm volatile ,但在 Visual Studio 2012 中收到一条错误消息,提示“‘操作码’中存在内联汇编程序语法错误;找到‘数据类型’”。

我需要一些与 Windows 等效的代码。请提供任何信息/建议。

最佳答案

一般来说,我更喜欢外部汇编模块而不是内联汇编 - 它更便携(是的,可移植和汇编在同一个句子中使用)。汇编器如 nasmyasm可用于多个平台,并且可以生成多种目标文件格式。

外部汇编模块不适合像您的代码这样真正对性能至关重要的单行代码 - 请考虑使用编译器内在函数而不是内联汇编。您可能想查看Portable Compare And Swap .

关于visual-c++ - 将 GNU asm 调用转换为 VC++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11010162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com