在 GCC 风格的扩展内联汇编中,是否可以输出“虚拟化”代码?布尔值,例如进位标志?
如果我有以下 C++ 代码来比较两个 128 位无符号整数,并使用内联 amd-64 asm: struct uint128_t { uint64_t lo, hi } inline bool operator< (cons…
为什么 MS C++将此代码添加到程序集中?
我有一些代码(内联汇编)。 void NativeLoop() { int m __asm { PUSH ECX PUSH EDX MOV ECX, 100000000 NEXTLOOP: MOV EDX, ECX AND EDX, 0X7FFFFFFF…
内联汇编程序调用子程序
我对内联汇编器有疑问。是否可以从同一函数内的内联汇编程序调用另一个汇编程序子例程?例如: void FindValidPID(unsigned int &Pid) { __asm { s…
Visual Studio 中的嵌入式程序集文件
我将简明扼要地讲到这一点。在 Visual Studio 中创建 64 位代码时,_asm 块已被完全剥离。我的问题是,在哪里可以找到有关如何在可以从项目中调用的某…
如何使用另一个 XMM 寄存器条目中的 4 个相同的浮点数填充 x86 XMM 寄存器?
我正在尝试实现一些内联汇编程序(在 C/C++ 代码中)以利用 SSE。我想将值(从 XMM 寄存器或内存)复制并复制到另一个 XMM 寄存器。例如,假设内存中…
你能把这个内联汇编转换成非内联汇编吗?
我遇到了这个内联汇编。我不确定如果没有这种语法它应该是什么样子......有人可以给我看吗? __asm__ volatile ("lock\n\tincl %0" :"=m"(llvm_cbe_tm…
at&t asm 内联 c++问题
我的代码 const int howmany = 5046 char buffer[howmany] asm("lea buffer,%esi") //Get the address of buffer asm("mov howmany,ëx") //Set the lo…
使用 __asm 从十六进制偏移量调用函数
我不懂汇编,所以我不知道如何去做。 我有一个程序正在连接到另一个程序。我已经获得了该函数在挂钩程序的 .exe 中所在位置的偏移量 #define FuncToCa…
如何在运行时使用 GCC 和内联汇编检测 CPU 架构类型?
我需要找到CPU的架构类型。我无法访问 /proc/cpuinfo,因为机器正在运行 syslinux。我知道有一种方法可以使用内联 ASM 来做到这一点,但是我相信我的…
需要Solaris(sparc架构)上的原子加法操作代码
我需要相当于以下的原子操作代码:( __asm__ __volatile__ ( " lock\n" " addl %1, %0 \n" " movl %0, %êx" : "=m"(a), "=a" (c) : "ir"(b) ) 在 Lin…
使用 SSE 指令时是什么导致了此分段错误?
这个问题让我有点抓狂。该代码似乎是分段错误,没有充分的理由: #define MULT_FLOAT4(X, Y) ({ \ asm volatile ( \ "movups (%0), %%xmm0\n\t" \ "mu…
如何在 gnu pascal 中编写内联汇编?
由于没有官方参考资料,我只有一篇教程 gpcasm.zip 。但是当我尝试遵循 tut 并尝试内联时我的 debian 上的汇编示例。gpc 对此不满意。 gnu_asm.pas : …