inline-assembly

    1热度

    2回答

    我遇到了这个内联asm。如果没有这个语法,我不知道它应该是什么样的......有人可以向我展示它吗? __asm__ volatile ("lock\n\tincl %0" :"=m"(llvm_cbe_tmp__29) :"m"(*(llvm_cbe_tmp__29))"cc");

    2热度

    1回答

    这个问题让我有点疯狂。该代码似乎segmentation faulting没有很好的理由:,只要我有两个“之前”和“之后”的变量是分段错误定义 #define MULT_FLOAT4(X, Y) ({ \ asm volatile (\ "movups (%0), %%xmm0\n\t" \ "mulps (%1), %%xmm0\n\t" \ "mo

    0热度

    3回答

    我试图通过sys_write系统调用二进制写入(到标准输出或文件),但我只能有文本文件。如何也没有文字(二进制​​)字节? "mov %eax, %ebx;" "mov $4, %eax;" "mov -0x40(%rbp), %ecx;" "mov $14, %edx;" "int $0x80;" 这个例子,我不能写14个字节的尝试,如果他们不是文本的字节(由无文本文件字节长度为

    3热度

    5回答

    我在项目中大量使用内联汇编,在编译时我需要调用具有未知数量参数的函数,并且我管理自己使其有时在linux中工作(在Windows中,我不“T记得有这个问题),奇怪的事情是这样发生的: 如果我有像 for(int i = 1; i >= 0; i--) asm("push %0"::"m"(someArray[i])); 它的工作原理。 如果我有 for(int i = this->s

    7热度

    6回答

    背景:我的任务是编写Unitech HT630的数据收集程序,该程序运行专有的DOS操作系统,可以运行为16位MS DOS编译的可执行文件,尽管存在一些限制。我正在使用Digital Mars C/C++编译器,它似乎工作得很好。 对于一些我可以使用标准C库的东西,但是其他的东西比如绘制在单元的屏幕上需要汇编代码。设备文档中给出的程序集示例与在C/C++中使用内联汇编代码的教程不同。作为参考,以下

    2热度

    2回答

    我将简短介绍一下。在Visual Studio中创建64位代码时,_asm块已被完全剥离。我的问题是,在哪里可以找到一些关于如何在我可以从我的项目调用的代码中使用程序集的信息。就像一个汇编文件,我认为它有一些“优化”的功能,我可以直接在我的C++源代码中调用它。

    2热度

    3回答

    在我的项目中,我需要使用内联装配,但它需要是Nasm,因为我对GAS不太了解。 我尝试: void DateAndTime() { asm (.l1: mov al,10 ;Get RTC register A out RTCaddress,al in al,RTCdata test al,0x80 ;Is update in progr

    0热度

    4回答

    我想知道如何使用内联程序集检索调用我的函数的函数的地址。我的想法是将地址放到调用我的函数返回的地方,并使用它之前的指令(即调用函数调用我的函数),检索调用我的函数的地址并添加到给定的偏移量调用下一条指令的地址(调用我的函数返回的地址)。到目前为止,我能够做到这一点,但得到我的地址。这是相当简单的,它的工作原理: _asm { mov eax, [ebp+4] mov retu

    1热度

    4回答

    我不知道程序集,所以我不知道如何去做这件事。 我有一个挂钩到另一个程序。我已经获得的偏移量,其中功能位于钩程序的.exe #define FuncToCall 0x00447E5D 所以现在我怎么能使用__asm {}内调用该函数?

    2热度

    2回答

    任何人都可以证明我的正确的AT & T语法做下面我做在INTEL 什么我在AT &牛逼显示我的尝试,但他们并不编译... unsigned int CheckIfGenuineIntel(void) { unsigned int VendorIdentificationString[4] = {0, 0, 0, 0}; #if defined(_DO_INTEL_) __