C++、ASM 和 cout

标签 c++ visual-studio-2010 assembly iostream disassembly

我正在使用 VC++ 反汇编我编写的一个非常简单的程序:

#include <iostream>

using namespace std;

int main()
{
    for(int i = 0; i < 11; i++)
    {
        cout << i << endl;
    }
    return 0;
} 

我希望阐明 cout 的工作原理,但经过检查,生成的 ASM 指向外部源(我假设):

EXTRN __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A

有没有办法从上面的行中识别出 this 指向的具体位置以及如何访问它?即便如此,如何阅读上面的行?

最佳答案

您不必拆卸它。流的 MS 源是 Visual Studio 安装的一部分。参见:“C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src”

关于C++、ASM 和 cout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8136287/

相关文章:

visual-studio-2010 - 更新服务引用时出错 : Could not resolve mscorlib for target framework 'Silverlight, Version=v4.0'

c++ - Oracle 数据库中的 OCCI - 在 OCI.dll 库中找不到过程 OCIPIsDescRebuilt 的入口点

c++ - 虚拟处理器和高级网络 linux 和 windows

assembly - 程序集寄存器中的 Microsoft Visual Studio 二进制文件

c++ - gcc 4.6 出现奇怪的模板错误消息

c++ - Windows 应用程序音量混合器

c# - 仅在 IDE 之外的 Release模式下 x64 .NET 4.0 应用程序崩溃

c++ - 从目录中提取以特定单词开头的所有文件

c++ - 销毁具有全局实例的类中的静态成员

assembly - 这是什么汇编语言/体系结构?