所以我目前正在研究汇编语言,我在终端上遇到了这个很棒的命令,gcc -S filename.cpp,它生成 C++ 源文件的汇编代码。
但是在我安装 NASM 并尝试链接和编译 .S 文件后(我也尝试通过复制粘贴 .s 文件中的代码来使用 .asm),我最终只在终端中遇到了错误。
我确信 C++ 源文件中没有错误,因为它只是一个 hello world 程序,但我知道我遗漏了一些东西,我希望有人可以为我指出。
这是C++源代码:
#include <iostream>
using namespace std;
int main ()
{
cout<<"wtf";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是 .s 文件代码:
.file "try1.cpp"
.text
.section .rodata
.type _ZStL19piecewise_construct, @object
.size _ZStL19piecewise_construct, 1
_ZStL19piecewise_construct:
.zero 1
.local _ZStL8__ioinit
.comm _ZStL8__ioinit,1,1
.LC0:
.string "wtf"
.text
.globl main
.type main, @function
main:
.LFB1493:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6 …Run Code Online (Sandbox Code Playgroud)