Questions tagged «inline-assembly»


3
asm,asm易失性和破坏性内存之间的区别
在实现无锁数据结构和时序代码时,通常有必要抑制编译器的优化。通常情况下,人们会在“障碍物”列表中使用asm volatilewith进行此操作memory,但有时您会看到只是asm volatile或仅有一个简单的asm障碍物记忆。 这些不同的语句对代码生成有什么影响(尤其是在GCC中,因为它不太可能移植)? 仅供参考,以下是一些有趣的变化: asm (""); // presumably this has no effect on code generation asm volatile (""); asm ("" ::: "memory"); asm volatile ("" ::: "memory");
75 c  gcc  inline-assembly 

6
无需汇编的C / C ++函数定义
我一直认为printf(),在最后一步中,要使用内联汇编来定义类似的函数。stdio.h的深处埋有一些asm代码,该代码实际上告诉CPU该怎么做。例如,在dos中,我记得它是通过首先mov将字符串的开头放置到某个内存位置或寄存器中,而不是调用int中断来实现的。 但是,由于Visual Studio的x64版本根本不支持嵌入式汇编程序,这使我想知道在C / C ++中根本没有汇编程序定义的函数。printf()在不使用汇编代码的情况下,如何在C / C ++中实现类似库的功能?究竟是什么执行正确的软件中断?谢谢。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.