在 Visual Studio 中查看数组的内容(汇编语言)

Posted

技术标签:

【中文标题】在 Visual Studio 中查看数组的内容(汇编语言)【英文标题】:View contents of array in Visual Studio (assembly language) 【发布时间】:2013-03-27 03:53:31 【问题描述】:

在 Visual Studio 中,调试汇编语言代码时是否可以查看数组的内容?我已经知道如何将数组num 添加到“Watch”窗口,但我仍在试图弄清楚如何查看数组的内容。可以将sword 数组添加到 Visual Studio 中的“监视”窗口,但是否可以在单步执行程序时查看数组的内容?

.686p
.model flat,stdcall
.stack 2048
.data
num   sword  1000,-1000,2000,-2000 ;I want to keep track of each value in this array while debugging.
;Is it possible to display the contents of all indices of num while debugging?

ExitProcess proto, exitcode:dword
.code

start:![Lots of ?'s are showing up here instead of the actual value of the array][1]

mov ax, num;
mov ax, [num+1];

invoke  ExitProcess, 0
end start

【问题讨论】:

【参考方案1】:

你可以显示你的数组占用的内存。

转到“auto”、“locals”等旁边的“memory1”标签 输入要检查的符号名称,或选择源中的变量名称并将其拖到内存窗口的Address 字段中。这就是我在调试 C 代码时使用的方式,当我第一次使用程序集对其进行测试时,看来我需要“以 C 风格”键入它,即输入 &num 以显示 num 的地址符号。 您可以通过右键单击窗口来自定义要显示的字长(每个字 1 到 8 个字节),您可以在窗口的工具栏选项中选择显示的列数

【讨论】:

我没有显示“memory1”标签。如何将其添加到显示的选项卡中? 确实,我曾经通过 debug / windows 菜单显示它,但我的 express 2010 版本似乎已经消失了。可以用command window中输入的命令memory再次显示(接近immediate 它现在似乎可以工作了——我只需要在数组名称前输入& 即可查看数组的内容。 另外,是否可以将数组的特定地址添加到Watch窗口? @AndersonGreen:因为它支持“C”表达式,你可以试试&array+42

以上是关于在 Visual Studio 中查看数组的内容(汇编语言)的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 调试中将结构体指针转换为结构体数组查看

如何从 Visual Studio 中查看 .sdf 内容

以编程方式创建 pro 时如何在 Visual Studio 中查看资源文件内容

如何在 Sql Data Tools Visual Studio 2010 中查看 <二进制数据> 内容?

在 Visual Studio 中重命名某些内容时,如何查看“无法解决的冲突”是啥?

在 Visual Studio 2015 上调试时如何查看 Qt5 QString 内容