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
,但它只是将我放入其中的任何乱码添加到程序集输出中:
使用树模式,您可以设置包含多个文件的 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)