c++ - 反汇编简单的Hello World程序

标签 c++ c visual-studio-2010 assembly compiler-construction

我编写了这个小型 C++ 程序并构建了它(发布)

#include<iostream>
int main(){
     std::cout<<"Hello World";
     return 0;
}

当我反汇编它时,它有很多额外的代码(安全cookie等..)。我相信 Visual Studio 正在添加所有这些。如何在没有任何额外信息的情况下编译该程序,以便轻松理解其反汇编代码?

我知道汇编相对更难,但我的意思是从 hello world c++ 程序中获取 hello world asm 代码。这可能吗?

最佳答案

您将从一个巨大的代码库开始 <iostream> 。您可能想要做的是完全避免使用运行时库。尝试这样的事情:

#include <windows.h>

int main() {
    HANDLE stdout = GetStdHandle(STD_OUTPUT_HANDLE);
    WriteFile(stdout, "Hello world\n", 12, NULL, NULL);
    return 0;
}

在打开程序集列表的情况下进行编译,这应该会为您提供一些“原始”Win32 代码。

关于c++ - 反汇编简单的Hello World程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9882267/

相关文章:

c++ - 查找和打印不同字符串中的常用字母

c++ - 为什么必须在哪里放置 “template”和 “typename”关键字?

c - Doxygen:宏和枚举元素的自动引用

c - "On demand"服务器中全局结构的共享内存段

c - Visual Studio 转换问题

visual-studio-2010 - 无法安装 .NET Framework 3.5

C++ 输入到 vector<float> 而不以非 float 结尾

c++ - 在 massif 工具中跟踪子进程的命令

c - 简单的 fputs() 示例返回 EOF

c++ - 我该怎么做才能修复 Visual Studio 不显示每个文件属性的问题?