我可以将自己的汇编文件/指令添加到 godbolt 项目中吗?

c00*_*0fd 3 c++ assembly clang compiler-explorer

正如标题所示。比如说,我想通过Godbolt项目来做到这一点:

main.cpp

#include <iostream>

extern "C" int test_111();

int main()
{
    int r = test_111();
    
    std::cout << "result=" << r << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后在asm1.asm

.code

test_111 PROC

    ; 64-bit assembly
    xor eax, eax
    inc rax

    ret

test_111 ENDP

END
Run Code Online (Sandbox Code Playgroud)

在“x86-64 clang”(任何版本)下尝试。

但我似乎不知道如何做到这一点。有什么建议么?

附言。目标是将我自己的汇编指令注入到输出中。


编辑:

在评论中提出建议后,我尝试了关键词asm volatile,但它只是将我放入其中的任何乱码添加到程序集输出中:

在此输入图像描述

dav*_*ave 5

使用树模式,您可以设置包含多个文件的 CMake 项目,包括 asm:

神箭链接

为了使其工作,我必须nasm在文件中启用支持CMakeLists.txt并手动设置汇编器的路径

set(CMAKE_ASM_NASM_COMPILER /opt/compiler-explorer/nasm-2.14.02/bin/nasm)
enable_language(ASM_NASM)
set(CMAKE_ASM_FLAGS "${CFLAGS} -x assembler-with-cpp")
Run Code Online (Sandbox Code Playgroud)