3

我正在从反汇编中调试一些代码(没有可用的源代码),并且有许多指令通过ds段寄存器访问数据,例如:

66 3B 05 8A B1 43 00 cmp         ax,word ptr ds:[43B18Ah]

你如何让 Visual Studio 调试器告诉你ds段寄存器的偏移量,以便我可以检查它所指的内存?Watch 窗口似乎不接受类似ds:[0x43B18A]或变体的表达式;它会告诉我这ds是 0,但这并没有告诉我段 0 的偏移量是什么。

是否有一些特殊的语法,或者这是 VS 无法做到的?使用另一个调试器(例如 WinDbg 或 ntsd)会不会更好?

4

1 回答 1

5

这是 Visual Studio 中内置的反汇编程序的一个怪癖。这是多余的,DS寄存器是默认的。忽略它,在 Windows 上 DS、CS 和 ES 寄存器设置为相同的值。保护模式选择器。与“内存”窗口使用的值相同。只需省略 ds: 前缀。

于 2010-09-07T18:34:12.873 回答