-5

我在 Visual Studio 2012 中的 C++ 中设置了一个断点。我运行代码,右键单击遇到断点的行,然后选择“Go to Dissembly”。出现一个新窗口,显示我的程序的汇编程序。但是,当我开始向上或向下滚动汇编程序时,滚动条开始变得越来越大,好像我的滚动正在创建额外的汇编程序指令(显然这对于​​ CPU 来说确实会发生 - 但当然汇编程序窗口应该只是显示我的程序的汇编程序-不是我的鼠标滚动???)

有人可以确认为什么滚动条不断调整大小,这意味着汇编程序的数量是无限的吗?

我只想看看:

我在汇编程序中的程序开始

->> 滚动 ->>

我在汇编程序中的程序结束

在汇编器窗口中(而不是输出汇编器文件)。VS2010 也会发生同样的事情。

编辑

该程序:

#include <iostream>

using namespace std;

int main(){
    cout << "test" << endl;
    int b = 0;
    cin >> b;
}

可能是因为控制台窗口打开并且 cin >> 等待?

4

1 回答 1

2

反汇编窗口是一个内存查看器。表明:

  • 内存地址
  • 代码字节(从上下文菜单中检查后)
  • 反汇编代码

内存地址范围不限于程序分配的内存,因此您可以滚动整个地址空间。

微软在这里解释了滚动条的行为:

您还会注意到垂直滚动条以非标准方式运行。现代电脑的地址空间非常大,抓着滚动条的拇指拖到任意位置很容易迷路。出于这个原因,拇指是“弹簧加载的”并且始终保持在滚动条的中心。在本机代码应用程序中,您可以向上或向下翻页,但不能自由滚动。

于 2013-07-20T19:06:36.653 回答