相关疑难解决方法(0)

在x64 Visual Studio中内联汇编函数

我知道x64模式下的MSVC编译器不支持内联汇编代码片段,并且为了使用汇编代码,你必须在一些外部my_asm_funcs.asm文件中定义你的函数,如下所示:

my_asm_func PROC
    mov rax, rcx
    ret
my_asm_func ENDP
Run Code Online (Sandbox Code Playgroud)

然后在你的.c或.h文件中为这个函数定义一个标题:

int my_asm_func(int x);
Run Code Online (Sandbox Code Playgroud)

虽然该解决方案解决了许多问题,但我仍然有兴趣使汇编代码函数内联,换句话说 - 在编译之后我不想对my_asm_func进行任何"调用" ,我只是希望这个程序集被粘合进入我的最终编译代码.我尝试使用inline__forceinline关键字声明该函数,但似乎没有任何帮助.还有什么办法可以做我想要的吗?

c x86-64 masm visual-studio

6
推荐指数
1
解决办法
2932
查看次数

使用汇编代码在 OpenGL 中渲染视频时出错

为了在 OpenGL 中渲染视频,我遵循了Nehe 的本教程。我正在尝试在 x64 上构建它,但是在编译代码时它给了我一个错误,它指向 flipIt(void* buffer) 函数。是写的不好还是需要导入库?

void Video::flipIt(void* buffer)
{
    void* b = buffer;
    __asm
    {
        mov ecx, 256 * 256
        mov ebx, b
        label :
        mov al, [ebx + 0]
            mov ah, [ebx + 2]
            mov[ebx + 2], al
            mov[ebx + 0], ah

            add ebx, 3
            dec ecx
            jnz label
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ opengl graphics 64-bit assembly

0
推荐指数
1
解决办法
118
查看次数

标签 统计

64-bit ×1

assembly ×1

c ×1

c++ ×1

graphics ×1

masm ×1

opengl ×1

visual-studio ×1

x86-64 ×1