inline-assembly

    2热度

    1回答

    有人请告诉我这段代码有什么问题 我只是调用kernel32.dll中的Sleep函数 出了什么问题? 我正在使用Visual Studio 2008. 任何帮助将不胜感激。 非常感谢。 __asm { mov eax, 77e2ef66h push 9999 call eax }

    1热度

    2回答

    我想从内联汇编中调用pow函数。问题是我收到错误C2244:'pow':无法将函数定义匹配到现有声明。我是装配新手,所以这可能是一个微不足道的问题,但我该如何解决这个问题?我想这与编译器不能正确解决pow的超载有关。以下代码片段导致错误: do_POW: // push first argument to the stack sub esp, size value_type

    3热度

    3回答

    是否可以使用系统调用在内联汇编块中编写单个字符?如果是这样,怎么样?它应该是这样的 “东西”: __asm__ __volatile__ ( " movl $1, %%edx \n\t" " movl $80, %%ecx \n\t" " movl $0, %%ebx \n\t" " movl $4, %%ea

    2热度

    5回答

    我一直在试图找出如何在一个非常关键的几行获得在我的代码一些改进: float x = a*b; float y = c*d; float z = e*f; float w = g*h; 所有A,B,C ...是彩车。 我决定研究使用SSE,但似乎无法找到任何改善,实际上它变慢了两倍。我SSE代码: Vector4 abcd, efgh, result; abcd = [float a,

    1热度

    2回答

    我在VS中有一个函数,我将一个指针传递给该函数。然后我想将指针存储在寄存器中以进一步操作。你是怎样做的? 我已经试过 float __declspec(align(16)) x[16] = { 0.125000, 0.125000, 0.125000, 0, -0.125000, 0.125000, -0.125000, 0, 0.125000, -0.125000

    8热度

    7回答

    可以访问C中的32位寄存器吗?如果是,如何?如果没有,那么是否有任何方法将汇编代码嵌入到C中?顺便说一句,我使用MinGW编译器。 在此先感谢!

    3热度

    1回答

    想知道如何在32位I86体系结构上内联使用fbstp。我试过类似 int main() { double foo = 100.0; long bar = 0; asm("pushl %1; fbstp %0" : "=m"(bar) : "r"(foo) ); ... 但是bar没有改变。我试过阅读所有我能找到

    2热度

    2回答

    我想建立一个像操作系统一样的旧的16位DOS操作系统。 我的例子内核代码: asm(".code16\n"); void putchar(char); int main() { putchar('A'); return 0; } void putchar(char val) { asm("movb %0,

    4热度

    2回答

    我正在操作系统设计类中,他们给了我们一个用C编写的微内核,我们正在构建它。内核似乎已经设计了32位机器,我正在运行雪豹。所以我和班上的一位朋友一直试图将其转化为64位寻址。 最大的问题似乎是一个代码行,其中的内联组件被用于当前堆栈指针复制到由调度器所使用的临时变量: #define SET_STACK(s) asm("movl temp,%esp"); 自然地,编译器吐出回错误在因为%esp是

    3热度

    2回答

    似乎无法找到任何东西,除了64/32位的东西,当我搜查意见问题。 __asm__ { mov rbx, 0xFFFFffffFFFFffffull movq mm2, rbx } 这些2个指令后,将平方毫米寄存器根据我的xcode调试器(这是内联汇编在C++)保留值0x30500004ffffffff。现在我是x86程序员新手,我的程序集课程是在MIPS中讲授的,我之前花